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

Gesamten Workspace speichern aber auch inkl. Variablenwerte!

 

Feuervogel
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.04.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2021, 15:02     Titel: Gesamten Workspace speichern aber auch inkl. Variablenwerte!
  Antworten mit Zitat      
Hallo.

Ich hab das Problem das ich den Workspace voller Variablen habe. Klicke ich diese an oder Eingabe über das Command werden auch die Werte der Variablen angezeigt.

Da es sehr viele Variablen sind, wollte ich den Workspace komplett abspeichern mittels :
Var=who od. vars=evalin('base','who')

Jetzt kann ich mir aber nur jeden Variablennamen anzeigen lassen z.B Var{234}.
Aber eben nur den Namen. ich brauche auch die Werte dazu.

mean(Var{234}) wäre z.B ein Ziel. Aber das geht natürlich nicht.
Hatte das qdm schonmal?
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 11.05.2021, 21:01     Titel:
  Antworten mit Zitat      
Naja, du sagst Matlab, es soll NUR die Namen speichern bzw. ablegen. Und das tut es auch.

Wenn du den Workspace mit Werten speichern willst, muss du mit save arbeiten.
Code:

_________________

LG
Martina

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

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.04.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2021, 07:33     Titel:
  Antworten mit Zitat      
ich habe mich nicht gut ausgedrückt.

ich will die Variablen im Workspace aufrufen ohne sie einzeln abzutippen. Ich brauche aber auch die Werte der Variablen.

Also nicht nur die Namen. Ansonsten könnte ich ja den Namen eingeben und dazu kommen dann gleich alle Werte. Aber es sind seeehr viele , daher dachte ich mit z.B

liste=who
und dann mean(who(1)) und das von 1 bis n.
Wie stelle ich das also an?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2021, 08:17     Titel:
  Antworten mit Zitat      
Hallo,

das ginge mit eval . eval ist aber schwer nachzuvollziehen und zu debuggen und daher nicht empfohlen.
Ich würde stattdessen die Vorgehensweise überdenken. Allein schon dass du "seeehr viele" Variablen im Workspace hast, legt für mich Verbesserungspotenzial nahe, z.B. Zusammenfassung von Variablen durch die Verwendung von Strukturen oder Cell Arrays.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Feuervogel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.04.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2021, 16:25     Titel:
  Antworten mit Zitat      
ja das stimmt. Jedoch bin ich mit cells und structs noch schlechter.
Ich bin soweit mit eval durchgekommen bis jetzt wieder ne Sackgasse.
Es muss an den Anführungszeichen irgendwo bei var liegen.
Wie bekomme ich die Anführungsstriche so hin das sie mit ausgeschriebenen werden?

Werte{1,1} sind alle Werte der Variable Gewicht
Findest du vllt hier den Fehler?
eval([ˋGesamtˋ,Werte{ 1,1},`=who(SumˋWerte{1,1},`*`,`,`,ˋˋvarˋˋ,ˋ)ˋ])

stehen soll:

GesamtGewicht=who(ˋSumGewicht*ˋ,ˋvarˋ)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.05.2021, 17:24     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Jedoch bin ich mit cells und structs noch schlechter.

Was meinst du damit, dass du damit schlechter bist? Dass du dich damit weniger auskennst? Dann kann ich nur raten, dass du dich baldmöglichst daran gewöhnst.

Die Mühsamkeit, solche eval-Statements zu debuggen, ist genau der Grund, warum man gar nicht erst damit anfangen sollte. Versuch:
Code:
eval(['Gesamt',Werte{ 1,1},'=who(''Sum',Werte{1,1},'*''',',''var'')'])


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Feuervogel
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.04.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.05.2021, 07:19     Titel:
  Antworten mit Zitat      
Ich verstehe voll und ganz was du mit Schwierigkeiten meinst. Also das war es leider auch nicht.

Wie stellt man den in eval Anführungsstriche so dar, dass sie ausgeschrieben werden?


'' ? Oder ''' also das der in der Mitte geschrieben wird und die beiden außen zeigen an ,das die Zeichen die in der Mitte stehen (in diesem Fall das ' ) ausgeschrieben werden soll?

Wenn die Zeichen pink aufleuchten, dann werden sie dort als Text ausgeschrieben oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.05.2021, 19:21     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich verstehe voll und ganz was du mit Schwierigkeiten meinst.

Dann kann ich dir nur raten, eval ganz schnell wieder zu vergessen und eine "vernünftige" Lösung zu suchen.

Zitat:
Also das war es leider auch nicht.

Heißt?
Wenn du eval durch disp ersetzt, siehst du, welcher Befehl ausgeführt wird. Wenn ich mich nicht irre, ist das der Befehl, der du wolltest. Wenn du doch etwas anderes willst, müsstest du sagen, was.

Zitat:
Wie stellt man den in eval Anführungsstriche so dar, dass sie ausgeschrieben werden?

Zwei aufeinanderfolgende ' , wenn ' am Anfang oder Ende einer Zeichenkette stehen soll, dann drei.

Zitat:
Wenn die Zeichen pink aufleuchten, dann werden sie dort als Text ausgeschrieben oder?

Ja.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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: 19.05.2021, 12:46     Titel: Re: Gesamten Workspace speichern aber auch inkl. Variablenwe
  Antworten mit Zitat      
Hallo Feuervogel,

Das Kernproblem ist, dass du den Base-Workspace mit Variablen verstopft hast. Wenn man stattdessen Structs nimmt, um die Variablen zu sortieren, ist die Lösung trivial.
Nun kannst du praktischerweise den Worksapce einfach in ein Struct verwandeln:
Code:
save('Temp.mat');
WS = load('Temp.mat');

Schon hast du die Namen der Variablen als fieldnames und die dazugehörigen Daten dazu.
Code:
Name = fieldnames(WS);
for k = 1:10
   WS.(Name{k});
end


Gruß Jan
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 - 2024 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.