|
|
Variablennamen vergleichen und Rest des Strings übernehmen |
|
joggel.v |

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 07.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 12:58
Titel: Variablennamen vergleichen und Rest des Strings übernehmen
|
 |
Hallo Zusammen,
ich lade mir eine größere Menge Variablen in mein Workspace. Je nach Rasterung der Messdaten bekomme ich beim Import eine Endung an meinen Variablennamen gehängt.
So erhalte ich z.B nach dem Import den Namen:
LaunchControl_r_1 (für 100ms Rasterung)
LaunchControl_r_2 (für 100ms Rasterung)
Dameine Berechnungen für alle Zeitraster funktionieren soll, interessiert mich nur der erste Teil des Namens nämlich:
LaunchControl_r
Wie schaffe ich es, dass meine definierte Rechengröße, hier z.B. A immer die richtige Variable benutzt.
Also aus:
A=LaunchControl_r
soll sich Matlab automatisch das vorhandene Signal suchen:
A=LaunchControl_r_1
oder ggf.
A=LaunchControl_r_2
Habe es schon mit findstr versucht, kam aber zu keinem Ergebnis.
Über eure Hilfe würde ich mich freuen.
Gruß Jörg
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 13:34
Titel:
|
 |
Hallo,
wie erfolgt der Import? Mit load aus einer .mat-Datei?
Dann können die Daten in eine Struktur geladen werden.
Die Behandlung verschiedener Feldnamen ist deutlich einfacher als die Behandlung verschiedener Variablennamen.
Grüße,
Harald
|
|
|
joggel.v |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 07.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 14:17
Titel:
|
 |
Hallo Harald,
leider habe ich .dat Files welche ich mit
einlese. Habe Gerade schon versucht mit
ein Struct zu erzeugen, erhalte jedoch den Fehler:
Eine Idee
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 14:28
Titel:
|
 |
Hallo,
ich sehe drei Möglichkeiten:
a) die mdfimport-Funktion anpassen
b) Abfrage der vorhandenen Variablen mit WHOS und Weiterverarbeitung mit EVAL.
c) sofern die Anzahl der möglichen Anhängsel klein ist oder die Anhängsel wenigstens systematisch sind, kann man mit EXIST die Existenz der Variablen abprüfen.
Wenn möglich, würde ich c) verwenden. Ansonsten wäre die sauberere Möglichkeit wohl a), die zumindest zunächst einfachere vermutlich b).
Grüße,
Harald
|
|
|
joggel.v |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 07.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 15:15
Titel:
|
 |
Servus,
vielen Dank schon mal für deine Hilfe. Ich habe folgendes versucht:
Jetzt kann ich immerhin schon einmal den längeren Variablennamen LaunchControl_1 erhalten.
Nun müsste ich es doch mit dem EVAL Befehl schaffen, meinen
der tatsächlichen Variable 'LaunchControl_1'mit den Zahlenwerten im Workspace zuordnen können oder?
Also in der Art:
Hier hänge ich...
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 15:43
Titel:
|
 |
Hallo,
sollte gehen.
Hier ist Soll einmal ein String und einmal eine Variable. Aufgrund der Schwierigkeiten, die man sich mit solchen Konstrukten oft einhandelt, würde ich an sich die beiden anderen Lösungen bevorzugen.
Übrigens: statt mit regexp sollte man hier auch mit strncmp arbeiten können. Das finde ich persönlich einfacher.
Grüße,
Harald
|
|
|
joggel.v |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 07.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 16:53
Titel:
|
 |
Hallo,
ja hab mir schon sagen lassen, dass die Benutzung von EVAL kritisch ist.
Mit deinem Code
Zitat: |
eval(['Soll = ', Soll. ';']) |
komme ich nicht wirklich weiter.
Ich habe einen Vektor LaunchControl_1 <10123x1 double> und finde mit obigem code und who den vollständigen Namen und weiße den entsprechenden String meinem Soll zu.
Also erhalte ich:
Jetzt will ich mit EVAL dem Soll, also dem String die Variable LaunchControl_1 <10123x1 double> zuweisen.
Es müsste eine Kleinigkeit sein? =) Danke
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 16:57
Titel:
|
 |
Hallo,
ein kleiner Schreibfehler (Punkt statt Komma). So sollte es sein:
Das müsste meines Erachtens gehen. Wenn nicht, bitte die dabei auftretenden Probleme angeben.
Grüße,
Harald
|
|
|
joggel.v |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 07.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 17:36
Titel:
|
 |
Hallo,
ich vermute es liegt daran, dass mein Soll ein {}Cell Array ist. Folgenden Fehler schmeißt mir Malab:
Wie kann ich hier zugreifen? Vielen Dank ud Gruß
|
|
|
joggel.v |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 07.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 17:59
Titel:
|
 |
Okay habe den Fehler gefunden:
Es muss heißen:
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.02.2013, 20:48
Titel:
|
 |
Hallo joggle.v,
Ich nehme an es handelt sich um mdfimport aus dem FileExchange: http://www.mathworks.com/matlabcent.....-import-tool-and-function
Die Daten direkt in den Workspace zu importieren ist offenbar eine schlechte Idee. Es wäre deutlich einfacher, wenn diese Funktion in der Lage wäre, die Ausgabe in ein Struct zu schreiben. Da ich selbst die Funktion nicht modifizieren und hinterher im FEX veröffentlichen möchte, wäre eine Interface-Funktion denkbar:
Danach kann man sicher auf die Felder des Structs zugreifen und es können auch keine lokalen Variablen ausversehen überschrieben werden.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|