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 mit save/load anstatt mit assign/evalin übergeben

 

Robert
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 14.11.08
Wohnort: Istanbul
Version: 2010b
     Beitrag Verfasst am: 18.12.2008, 16:23     Titel: Variablen mit save/load anstatt mit assign/evalin übergeben
  Antworten mit Zitat      
Hallo Leute,

es steht zwar schon viel über dieses Thema im Forum, aber bis jetzt habe ich nicht diesen ganz einfachen Fall gefunden:
Ich habe zwei Figures (mit Guide erstellt). Im ersten Figure sind z. B. 10 Variablen, die ich zum Weiterverarbeiten im zweiten Figure benötige.
Jetzt kann ich die Variablen mit assign und evalin übergeben. Problem: Ich muss jede Variable 4 mal eintippen (assign('base', 'variable', variable) und nachher variable = evalin('base', 'variable').

Jetzt gibts ja den Befehl save. Der speichert mir alle Variablen in eine File "matlab.mat". Das klappt bei mir soweit.
Wenn ich nun im command window load matlab.mat eintippe, tauchen meine Variablen einwandfrei im base-Workspace auf.
Wenn ich den Befehl in die m-File von meinem GUI schreibe, funktioniert nichts mehr (Fehlermeldung für die nächste Zeile, zum Beispiel "Reference to non-existent field '...')

Nachdem ich nun einen halben Tag rumgespielt habe, habe ich auch festgestellt, dass ich (falls Variablen im base-Workspace vorhanden sind) so oder so nicht einfach mit einem mit GUIDE erstellten GUI darauf zugreifen kann. Richtig? Ich brüchte also so oder so den evalin Befehl.(?)

Sprich: Gibt es eine Methode mehrere Variablen auf einemal zwischen 2 GUIs auszutauschen?

Danke schon mal!
Grüße
Robert
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 19.12.2008, 15:58     Titel: Re: Variablen mit save/load anstatt mit assign/evalin überg
  Antworten mit Zitat      
Moin,

Robert hat Folgendes geschrieben:
Sprich: Gibt es eine Methode mehrere Variablen auf einemal zwischen 2 GUIs auszutauschen?


JA!

In der Skripte-Ecke finden sich schon einige Beispiele, wenn ich mich recht erinnere.

Ansonsten hast du die Variablen ja schon mit SAVE gespeichert, dann kannst du die in deiner anderen GUI auch wieder laden - du musst nur aufpassen, dass du nicht den Workspace deiner GUI-Funktion überschreibst:
Code:
s = load('test.mat');

Diese Zeile erstellt ein Stuct "s" in welchem alle gespeicherten Variablen sind. Auf diese kannst du dann ganz normal mit
Code:
zugreifen - du musst natürlich die Variablennamen anpassen Wink

Alternativ und evtl. auch besser: Du übergibst die Variablen der zweiten GUI ganz normal, wie bei jeder anderen Funktion auch als Rückgabewert - Dazu müsste hier im Forum auch schon einiges stehen...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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.