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

Struct "global" in GUI laden?

 

ribbenkamp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 12:01     Titel: Struct "global" in GUI laden?
  Antworten mit Zitat      
Hallo liebe Forumgemeinde,

ich bin momentan auf der Suche nach einer Möglichkeit um ein Struct, welches eine Reihe von Daten enthält "global" in meine GUI zu laden, damit dieses jeder Callback-Funktion zur Verfügung steht und nicht je Callback mittels "load(...)" neu eingebunden werden muss.

Hierzu gibt es anscheinend einige Möglichkeiten - allerdings habe ich an der Fülle an Informationen, die mir "Dr. Google" ausspuckt irgendwie die Übersicht verloren, wie man das am besten bewerkstelligt. Anscheinend geht das mit "guidata" relativ gut, doch, irgendwie durchschaue ich nicht so ganz, wie das mit dem Updaten des handles in den Callbacks funktioniert.

Für "normale" Variablen habe ich das bisher wie folgt gelöst, wobei ich dieses Vorgehen nun auf structs übertragen habe.

OpeningFcn() enthält:
Code:

load(str_datafilename, 'sct_tempdata');
handles.sct_tempdata = sct_tempdata;
 


In den jeweiligen Callbacks steht dann
Code:

sct_tempdata = handles.sct_tempdata;

% bzw. greife ich dann entsprechend die Daten so ab:
wert1 = sct_tempdata.feld1;

 


... ist das "guter" Matlabcode? Oder fehlt hier irgendwo dieses "Updaten" des handles?

Vielen Dank für eure Rückmeldungen,
ribbenkamp


Harald
Forum-Meister

Forum-Meister


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

wenn die handles-Struktur aktualisiert (also etwas neu angehängt oder auch nur verändert) wird, muss eine Anweisung der Form
Code:
guidata(handles.figure1, handles)

folgen.

Die Vorgehensweise ist in Ordnung und z.B. auch hier aufgeführt:
http://de.mathworks.com/help/matlab.....data-among-callbacks.html
Mir persönlich gefällt der Ansatz "Store Data as Application Data" besser, da man nicht an den zusätzlichen guidata-Aufruf denken muss und nicht die Gefahr besteht, dass man sich interne Informationen in der Handles-Struktur überschreibt.

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