WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Variablen im Workspace finden und gruppieren

 

FunkFreaker
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 29.06.10
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 16.11.2011, 11:36     Titel: Variablen im Workspace finden und gruppieren
  Antworten mit Zitat      
Hallo Leute,

hatte vor einiger Zeit schon einmal einen ähnlichen Beitrag, leider sind meine Lösungsansätze nicht auf fruchtbaren Boden getroffen.

Ich beschreibe mal das Problem: Das Konvertierungsprogramm, mit dem ich eine mdf-File in eine MAT File konvertiere, gibt mir 2 Dateien aus:

Beispiel1.MAT und Beispiel2.MAT.

Beispiel1.MAT:
Im Workspace stehen folgende Variablen:

EgoGeschwindigkeit_t6
t6
GeschwindigkeitHL_t10
GeschwindigkeitHR_t10
GeschwindigkeitVL_t10
GeschwindigkeitVR_t10
t10

Beispiel2.MAT:
Im Workspace stehen folgende Variablen:

EgoGeschwindigkeit_t3
t3
GeschwindigkeitHL_t8
GeschwindigkeitHR_t8
GeschwindigkeitVL_t8
GeschwindigkeitVR_t8
t8

Um die Daten später vernünftig plotten zu können, müssen t8 und t10 mit den jeweiligen Geschwindigkeitsvariablen "gekoppelt" bleiben.

Beispiel1.MAT und Beispiel2.MAT sollen später so gespeichert werden, dass in BEIDEN Files folgende Variablen im Workspace stehen:

EgoGeschwindigkeit_t0
t0
GeschwindigkeitHL_t1
GeschwindigkeitHR_t1
GeschwindigkeitVL_t1
GeschwindigkeitVR_t1
t1

Mein Problem ist die dynamische Programmierung, da die Name der Zeitparameter von File zu File unterschiedlich sein kann (Deshalb die beiden Beispiele).
Leider kann ich das Konvertierungsprogramm zwar so überlisten, dass es alle Geschwindigkeiten auf EINEN Zeitparameter herunterrechnet, jedoch geht dies nur bis zu einer bestimmten Messdateigröße, danach hängt sich das Programm auf.
Gibt es eine Möglichkeit, die Variablen anhand der Zeichenlänge zu finden?
Z.B. 'Suche nach GeschwindigkeitHL', sodass nun, für Beispiel1.MAT, GeschwindigkeitHL_t8 gefunden und in einem Struct gespeichert wird.
Um nun den zugehörigen Zeitparameter t8 noch zu finden, müsste man die letzten 2 bis 3 chars in der Geschwindigkeitsvariable GeschwindigkeitHL_t8 identifizieren und diese nun in einer erneuten Aktion suchen und anschließend in demselben Struct speichern.

Ich weiß, es klingt sehr aufwändig und leider habe ich keinen Einfluss auf die Benennung der Variablen im workspace, aber vielleicht hat ja jemand einen Lösungsansatz. Vielen Dank schonmal!
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 16.11.2011, 11:46     Titel:
  Antworten mit Zitat      
ich durchblicke das problem noch nicht ganz aber hilft dir
Code:
?
Private Nachricht senden Benutzer-Profile anzeigen
 
FunkFreaker
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 29.06.10
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 16.11.2011, 12:01     Titel:
  Antworten mit Zitat      
Nein, das gibt mir ja lediglich die Namen der Variablen im Workspace aus. Ich will die Variablen ohne den Zeitindex finden, in ein Struct packen, den dazugehörigen Zeitparameter finden, in ein Struct packen und dann alles umbenennen uns speichern.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.11.2011, 17:52     Titel:
  Antworten mit Zitat      
Hallo FunkFreaker,

Zitat:
Ich will die Variablen ohne den Zeitindex finden, in ein Struct packen, den dazugehörigen Zeitparameter finden, in ein Struct packen und dann alles umbenennen uns speichern.

Ich verstehe keinen einzigen dieser Schritte. Welches sind denn die "Variablen ohne Zeitindex"? In welches Struct sollen sie kopiert werden? Welcher Zeitparameter gehört wozu, und kann man das ohne Zeitindex überhaupt bestimmen? Musst Du die Ergebnisse zwei Mal in ein Struct packen? Von welchem Namen soll in welchen "umbenannt" werden und wie soll nun zum Schluß gespeichert werden?

Eventuell versuchst Du zu viele Schritte auf einmal zu lösen. Es könnte hilfreich sein, wenn Du Dich zunächst auf einen einzigen Schritt konzentrierst und ihn möglichst genau erklärst.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
FunkFreaker
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 29.06.10
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 16.11.2011, 18:41     Titel:
  Antworten mit Zitat      
Hallo Jan,

Zitat:
Ich verstehe keinen einzigen dieser Schritte. Welches sind denn die "Variablen ohne Zeitindex"?


vielleicht etwas blöd ausgedrückt: Ich möchte die Variablen, in dem Fall die Geschwindigkeiten (siehe obiges Beispiel) und deren Zeitparameter, am Ende umbenennen und ihre Werte mit übernehmen. Das Problem ist, das in jedem MAT-file den Geschwindigkeiten unterschiedliche Zeitparameter zugeordnet werden. Die Geschwindigkeiten sollen hier nur als Beispiel dienen, insgesamt gibt es wesentlich mehr Variablen, jede ist am Ende ihres Namens mit dem Zeitindex versehen, welcher ihr vom Konvertierungsprogramm zugeordnet wurde.

Zitat:
In welches Struct sollen sie kopiert werden?


Die Variablen meiner Messdatei liegen alle bereits auf dem workspace. Diejenigen, die ich benötige (hier die Geschwindigkeiten und deren Zeitindizes), sollen in einem Struct abgespeichert werden, NACHDEM sie in die im Beispiel genannte Form (siehe Beispiel, *HL_t1,*HR_t1 usw.) umbenannt wurden und ihre Werte übernommen wurden.

Zitat:
Welcher Zeitparameter gehört wozu, und kann man das ohne Zeitindex überhaupt bestimmen?


Die Geschwindigkeiten wurden mit unterschiedlichen Frequenzen erfasst, die Radgeschwindigkeiten z.B. mit 50Hz und die Geschwindigkeit des EgoFahrzeugs z.B. mit 100Hz. Dementsprechend unterschiedliche Zeitparameter und Zeitindizes, die den Geschwindigkeiten hintendran gesetzt werden, gibt es. Dummerweise ändern sie sich von File zu File leider.

Zitat:
Musst Du die Ergebnisse zwei Mal in ein Struct packen?


Nein, ein Struct am Ende reicht. Sprich: Alle Variablen bleiben im Workspace, lediglich die Geschwindigkeiten werden nach obigem Beispiel in einem Struct mit den dazugehörigen Werten abgespeichert. Ich möchte das einfach in einer einheitlichen Form haben, da sonst das Modell eines Kollegen nicht läuft.

Zitat:
Von welchem Namen soll in welchen "umbenannt" werden und wie soll nun zum Schluß gespeichert werden?


Als Beispiel: GeschwindigkeitHL_t10 wird umbenannt in GeschwindigkeitHL_t1 und die Werte werden übernommen. Anschließend sollen die fünf Geschwindigkeitsvariablen aus obigem Beispiel in einem Struct abgespeichert werden.

Ich hoffe, mein Problem ist etwas deutlicher geworden. Danke für die Antworten!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.