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 für erzeugung einer mat-Datei mit konfig-parametern

 

Markuso

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2011, 10:37     Titel: GUI für erzeugung einer mat-Datei mit konfig-parametern
  Antworten mit Zitat      
Hallo, ich plane folgende GUI

prinzipiell ja recht einfach...

also ich möchte mir eine Struktur per gui erstellen und die dann als *.mat Datei abspeichern.

d.h. ich habe "static text" und "edit text"

die Struktur soll dann wie folgt aussehen

inf.nn=4;
inf.block=[1 2 3];
inf.dx=2000;


diese Werte möchte ich dann später auch in das Programm reinladen bzw. anzeigen lassen können.

wie mach ich das am besten?
ein handle auf eine struktur wo man die Werte dann einfügt? d.h. die struktur schon vorher vorgeben?

dann einen "save button" der das programm dann beendet und die Daten speichert?

Markus


Harald
Forum-Meister

Forum-Meister


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

hört sich soweit vernünftig an. Das einzige Problem sehe ich bei dem "Handle auf eine Struktur" - das wird letztlich so aussehen, dass die Struktur entweder in dem UserData-Feld eines Objekts abgelegt wird (Zugriff mit get/set) oder als Anwendungsdaten der Figure (Zugriff mit getappdata/setappdata).
Als Callbacks der Textfelder hättest du dann
1. Holen der Struktur
2. Anpassen der Struktur (wäre auch schön, wenn du abfragst, ob die Werte auch sinnvoll sind)
3. Aktualisieren der Struktur

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2011, 08:28     Titel:
  Antworten mit Zitat      
hm, danke für die Antwort, hätte da noch eine Frage...

wenn ich mir z.B. das Beispiel unter http://blinkdagger.com/matlab/matla.....tutorial-for-beginners/#4 so ansehe

wie würde das in der Praxis dann mit "Userdata" aussehen, um z.B. "inf.nn=4; " für die abzuspeichernde Struktur zu erstellen

Code:

function v_nn_Callback(hObject, eventdata, handles)

input = str2num(get(hObject,'String'));   % eine Zeile davon sollte überfl

UserData = get(gcf, 'UserData');          %
UserData.nn = input;
set(gcf, 'UserData', UserData);

guidata(hObject, handles);


das was im verlinkten Beispiel als handles aufgeführt werden sind userdata? oder vermische ich noch etwas handles und userdata, oder ist das gleiche?

bzw. ist in Programmen die mit guide erstellt wurden guidata zu bevorzugen?
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.07.2011, 20:52     Titel:
  Antworten mit Zitat      
Hallo Torsten,

Die Benutzung von "input" als Namen einer Variablen ist tückisch, da dies schon der Name einer Toolbox-Funktion ist.
Die aktuelle Figure per GCF zu bestimmen, funktioniert solange keine andere Figure gerade in den Vordergrund kommt, z.B. eine WAITBAR. Besser wäre entweder GCBF oder "ancestor(hObject, 'figure')".

"handles" und "UserData" werden beide als Properties der FIGURE abgespeichert. Nur landen die "UserData" in einem Extra-Feld, während die "handles" als Feld im Struct ApplicationData gespeichert werden - siehe Source code von GUIDATA. Der Unterschied ist unerheblich.
Man kann z.B. die statischen Werte, die sich also während der Benutzung der GUI nicht ändern, per GUIDATA im Struct "handles" (der kann übrigens auch anders heißen) speichern, und die dynamischen in den UserData, z.B. das zuletzt aufgerufene File etc. Als dritte Möglichkeit kann man auch beliebige Daten per SETAPPDATA in der FIGURE speichern, aber das entspricht dem handles/guidata-Konzept exakt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Torsten23__

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2011, 18:26     Titel:
  Antworten mit Zitat      
ok, vielen Dank für diese Aufklärung.

hm, dann eine andere Frage, wenn ich nun meine Daten intern mit "handles" verwalte...

und mit
handles.ownvalues.size=10
handles.ownvalues.length=14

neue Werte hinzufüge, die ich über Gui-Elemente verändern lasse...

zwischen den einzelnen call-back functions werden diese Werte über

guidata(hObject, handles);

aktualisiert....

wie kann ich nun diese Wert als Rückgabewert einer Funktion bekommen....

z.B.

[ownvalues]=meinegui(wert1,wert2,wert3) ...


bisher beende ich meine Funktion wie folgt... dabei bekomme ich dann allerdings keine Daten zurück


function closepushbutton_Callback(hObject, eventdata, handles)
close all;
 
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.