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

GUI-Variablen global in Mat.-File

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.02.2010, 17:13     Titel: GUI-Variablen global in Mat.-File
  Antworten mit Zitat      
Hallo liebe Matlab-Profis,

ich arbeite an einem Projekt, bei dem ich mehrere GUI's nutze. Diese sollen jeweils Berechnungen durchführen und Werte ablegen, die wiederum von anderen GUI's verwendet werden sollen.

Ich möchte einen komplizierten Datenaustausch zwischen den GUI's vermeiden und möchte alle berechneten Variablen global in einem .mat-File speichern und von dort auch wieder laden können.

speichern tu ich das so:

Code:

% Werte aus GUI-Feldern in Struct einordnen
DataMassPara.MTOM = str2num(get(handles.staticMTOM, 'String'));
DataMassPara.kappa_ops = str2num(get(handles.statickappa_ops, 'String'));
% Struct als DataMassPara.mat speichern
save DataMassPara;
 


Die GUI's habe ich mit GUIDE erstellt.
Jetzt habe ich Probleme, das .mat-File mit Variablen zu erweitern oder die Werte zu laden und in anderen GUI's in Felder zu schreiben ...

Hat jemand eine Idee, wo das Problem liegen könnte? Gibt es da einen generellen Konflikt mit den handles der einzelnen GUI's?

Bsp. eines GUI's: Dieser Quellcode-Ausschnitt befindet sich in der Opening-Function eines GUI's:

Code:

...
% Struct aus DataMassPara.mat laden
load DataMassPara;
% einzelne Felder-Werte Variablen übergeben
MTOM = DataMassPara.MTOM;
kappa_ops = DataMassPara.kappa_ops;
% Werte in GUI-Felder einsetzen
set(handles.editMTOM, 'String', MTOM);
set(handles.editkappa_ops, 'String', kappa_ops);
...
 


Die Fehlermeldung lautet immer:
"??? Reference to non-existent field 'editMTOM'."
Er kennt also plötzlich das GUI-Feld nicht mehr obwohl es mit diesem Namen existiert ...

Hat da jemand ne Idee oder ähnliche Erfahrungen?

Steffen


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.02.2010, 10:04     Titel: Verwenden von Structs in GUI's
  Antworten mit Zitat      
Das Problem ist inzwischen gefunden und ich stelle die Lösung kurz dar, falls jemand ein ähnliches Problem hat.

Vorweg: Das speichern von Struct's im Command Window unterscheidet sich vom Speichern aus einem GUI heraus.

Bei meinem Problem wurde mit
Code:

save Structname;
 

eine Datei "Structname.mat" angelegt, in der nicht nur das eigentliche Struct gespeichert wird, sondern alles aus dem GUI (inkl. handles!!!).
Benutzt man nun
Code:

load Structname;
 

in einem anderen GUI, so wird auch das handles mitgeladen und das aktive überschrieben, so dass die eigentlich vorhanden Felder für Matlab nicht mehr bekannt sind.

Lösung:

mit
Code:

save Structdatei.mat Structname;
 


wird explizit nur ein Struct (ohne handles, hObject usw.) gespeichert.
Mit dem gewohnten
Code:

load Structdatei;
 


kann nun das Struct geladen werden und es kann auch in GUI's damit gearbeitet werden.

Steffen
 
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.