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

Vektoren im Workspace

 

Bob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2011, 19:58     Titel: Vektoren im Workspace
  Antworten mit Zitat      
Hallo,

da ich sehr wenig Matlabkenntnisse habe und nicht weiterkomme, hoffe ich dass mir hier gesagt werden kann was ich falsch mache.

Ich habe einen Ordner mit vielen mat-Dateien. Jede dieser mat-Dateien enthält um die 20 Vektoren (Messdaten).

Jetzt möchte ich einen Code schreiben, der mir nacheinander jede mat-Datei öffnet und und aus den Vektoren die Werte raussucht die ich benötige.

Die Mat-Dateien haben die folgende Bezeichnung: A_0_0_1, A_0_0_2,...
die Vektoren darin heißen z.B.: Geschwindigkeit1, Zeit1 ....


Der Code-teil an dem ich gerade hänge sieht vereinfacht so aus:
Code:

cd(['Meinzielverzeichnis'])

load(sprintf('A_%d_%d_%d', j, k ,l)) % j,k,l sind Zählvariablen in Schleifen

xvek= sprintf('Vektor%d', l)
 

Der load Befehl funktioniert noch und ich lade die gewünchten Vektoren in der mat-Datei in mein Workspace.

Aber bei
xvek=sprintf('Vektor%d,l)
mach ich wohl einen Fehler.

xvek soll dabei ein neuer Vektor sein mit dem gleichen Inhalt wie z.B. der der Vektor "Vekor3" aus dem Workspace, wird allerdings nur als String im Workspace abgespeichert.
Wie kann ich das ändern?

Grüße Bob


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.01.2011, 22:57     Titel: Re: Vektoren im Workspace
  Antworten mit Zitat      
Hallo Bob,

Code:

cd('Meinzielverzeichnis');
Data = load(sprintf('A_%d_%d_%d', j, k ,l));
xvek= Data.(sprintf('Vektor%d', l));
 

"Data.('FeldName')" nennt man "dynamic fieldnames". Dazu findet man Hilfe in der Dokumentation.
LOAD ohne Output schreib die Variablen in den Workspace. Genau das führt aber immer und immer und immer wieder zu Schwierigkeiten, wie man hier im Forum nachlesen kann. Die Variablen im MAT-File können lokale Variablen überschreiben, oder z.B. auch Funktionsnamen wie "max". Die Resultate sind dann sehr verblüffend, wenn man nach "max(1,2)" plötzlich die Variable ausliest, statt die Funktion MAX aufzurufen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Bob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2011, 23:12     Titel:
  Antworten mit Zitat      
Super,
danke Jan für die schnelle Hilfe!
 
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.