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

Teile aus Strukturdatensatz speichern

 

Flo0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2012, 14:31     Titel: Teile aus Strukturdatensatz speichern
  Antworten mit Zitat      
Hallo,

ich versuche verzweifelt Teile aus einem Strukturdatensatz zu speichern.
Und zwar sieht mein Strukturdatensatz so aus, dass er verschiedene Temperaturen und Drücke an verschiedenen durchnummerierten Knotenpunkten speichert. Das sieht dann so aus:
states(1).temperatur = 200
states(1).Druck = 1000
states(2). temperatur = 300
usw.

Jetzt möchte ich gerne jeweils die Temperatur und den Druck als einzelnes Array aus dem Datensatz extrahieren und speichern.
Wenn ich save 'myfile.mat', '-struct', 'states' mache spuckt er mir nur den Fehler: ??? Error using ==> save
The argument to -STRUCT must be the name of a scalar structure variable. aus.

Kann mir da jemand weiterhelfen?


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.10.2012, 18:16     Titel: Re: Teile aus Strukturdatensatz speichern
  Antworten mit Zitat      
[quote="Flo0815"]Hallo,

du hast ein Array of Structs, dass musst aber vorher in Struct of Array überführen

Code:

fnames = fieldnames(states)
for k=1:length(fnames)
   tmpstruct.(fnames{k})  = [states.(fnames{k})];    
end

save('temp.mat','-struct','tmpstruct','temperatur','Druck')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Flo0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2012, 09:03     Titel:
  Antworten mit Zitat      
Jetzt gibt es aber noch eine weitere Sache. Und zwar ändern sich die Namen der Daten, die ich auslesen möchte. Das ganze läuft mit einer GUI zusammen, in der der Nutzer auswählen kann ob er bspw. Temperatur, Druck und/oder andere Sachen ausgewertet haben möchte.
Kann ich das auch über das fieldnames aufrufen?
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.10.2012, 14:25     Titel:
  Antworten mit Zitat      
Hallo

verstehe deine Frage nicht?!
Was hat AUSLESEN mit ABSPEICHERN zu tun?
Nach Abspeichern hast du dann im File, Variablen: Druck, Temperatur usw
die kannst problemlos wieder einlesen....
Private Nachricht senden Benutzer-Profile anzeigen
 
Flo0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2012, 15:36     Titel:
  Antworten mit Zitat      
Sorry, hab die Frage nicht sauber formuliert. Ich meine, dass nicht immer die selben Daten aus dem Strukturdatensatz gespeichert werden sollen, sondern dass sich diese Daten ändern, je nach Benutzerwunsch. Ich kann nicht immer im save-Befehl die Namen angeben, da sich diese ändern. Ist es möglich, da eine Liste zu übergeben, z.B. [Temperatur, stat. Druck, etc.]
Diese Liste kann leicht erstellt werden, und der User soll nicht am Programmcode rumschreiben müssen.
Hoffe, das ist jetzt nicht allzu konfus Wink
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.10.2012, 15:51     Titel:
  Antworten mit Zitat      
Ja sicher ist das möglich

du kannst die Liste dem SAVE Befehl direkt übergeben
so z.B
Code:

% liste mit Variablen muss vorher definiert werden
savelist = {'Druck','temperatur'};
fnames = fieldnames(states)
for k=1:length(fnames)
   tmpstruct.(fnames{k})  = [states.(fnames{k})];    
end

save('temp.mat','-struct','tmpstruct',savelist{:})
Private Nachricht senden Benutzer-Profile anzeigen
 
Flo0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2012, 16:09     Titel:
  Antworten mit Zitat      
Danke, das ist genau, das was ich gesucht habe. Ich probiers mal aus.
 
Flo0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2012, 16:32     Titel:
  Antworten mit Zitat      
Funktioniert Smile
 
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.