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 vom Workspace in Struct speichern

 

Inonoob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 11:42     Titel: Variablen vom Workspace in Struct speichern
  Antworten mit Zitat      
Guten Tag,


Ich betreuhe ein versuchstand auf dem 14 Punkt vorhanden sind pro punkt habe ich 3 verschiede Sitationen. Mit meinen Geschrieben Skript werte ich punkt für punkt aus und habe dann im Workspace alle Variablen von diesen punkt in der jeweiligen situation. Ich hätte gern das in eine Struktur gesperichert:

Prüfstand
|_Punkt0
| |______Situation1
| |______Situation2
|_Punkt1
| |______Situation1
....

Und so weiter um dann alles in Prüfstand.mat abspeichern.

Die name Punkt0 und Situation1 wollte ich aus dem Ordner Namen ableiten.
Ich habe etwas experimentiert aber ich komm zu nix vernüftiges.


Code:


Pruefstand.Punkt0.Situation0.A = A
Pruefstand.Punkt0.Situation1.A = A
save('Pruefstand','Pruefstand')
 


Per Hand Funktionniert das nicht schlecht aber

wenn ich :

Code:


Var_names = who

for i=1:length(Var_names)

Pruefstand.Punkt0.Situation1.Var_names{i} = Var_names{i}

end
 


Warum erkennt er nicht das die in Var_names variablen name sind in dem Matrisen und Vektoren stehen ?

Und wie ich die Namen aus den Ordner name rausfilter weiss ich auch nocht nicht. Wenn jemand eine idee hat.

mfg Inonoob


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 15.11.2012, 13:52     Titel: Re: Variablen vom Workspace in Struct speichern
  Antworten mit Zitat      
probiers mal so:

Code:

Var_names = who
for i=1:length(Var_names)
Pruefstand.Punkt0.Situation1.(Var_names{i}) = Var_names{i};
end
Pruefstand.Punkt0.Situation1
 

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Inonoob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 14:07     Titel:
  Antworten mit Zitat      
Hey

cool sieht fast so aus wie ich es haben will aber leider speichert er nur die Namen der Variablen nicht die Werte die sich hinter den Variablen verstecken.

Mfg Inonoob

ps: vielen vielen dank für eure hilfe im voraus
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 15.11.2012, 15:31     Titel: Re: Variablen vom Workspace in Struct speichern
  Antworten mit Zitat      
Mmmartina hat Folgendes geschrieben:
probiers mal so:

Code:

Var_names = who
for i=1:length(Var_names)
Pruefstand.Punkt0.Situation1.(Var_names{i}) = eval(Var_names{i});
end
Pruefstand.Punkt0.Situation1
 

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Inonoob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 18:50     Titel:
  Antworten mit Zitat      
Hey

ich habe im Forum gelesen das "eval" schlecht sein soll. Nur ich verstehe im moment nicht warum das Help von Matlab hält sich bedeckt. In meinen Fall hat es ja super Funktionniert?

Mfg Inonoob
 
muenzi
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 12.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 19:13     Titel:
  Antworten mit Zitat      
Inonoob hat Folgendes geschrieben:
Hey

ich habe im Forum gelesen das "eval" schlecht sein soll. Nur ich verstehe im moment nicht warum das Help von Matlab hält sich bedeckt. In meinen Fall hat es ja super Funktionniert?

Mfg Inonoob


So wie ich das bisher verstanden habe ist es einfach viel langsamer als wenn man das über dynamische Structures machen. Bin mir aber nicht 100%ig sicher.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 10:47     Titel:
  Antworten mit Zitat      
Hallo Inonoob,

eval ist schlecht, weil es unbeabsichtigte Nebeneffekte haben kann.
Dadurch wird das Programm im günstigsten Fall viel schwieriger zu lesen.

Für Deinen Fall:
Warum schreiben Deine Auswerteroutinen nicht gleich ihr Ergebnis in ein
struct, dann brauchst Du sie später auch nicht umständlich umzuwandeln.

Willst Du tatsächlich alle Variablen aus dem Workspace kopieren?
Ich weiß nicht, wie viele du erzeugst, aber klarer und übersichtlicher wäre
es, jede davon bewust einzeln in das struct zu kopieren.

Statt die in den Feldern die Namen mit einer Zahl zu versehen ist es immer
besser, sie gleich in einen Vektor zu verwandeln also statt
Pruefstand.Punkt0.Situation1
besser
Pruefstand.Punkt(1).Situation(1)
schreiben.


Grüße
Sirius
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.