|
|
GUI Daten Variablen übergeben guidata setappdata getappdata |
|
nschlange |
Ehrenmitglied
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 19.09.2008, 16:34
Titel: GUI Daten Variablen übergeben guidata setappdata getappdata
|
|
Hier ein Beispiel, wie man Daten zwischen GUIs austauschen kann.
Da gibt es wohl schon einige Beiträge zu, aber da ich das noch nicht selber gemacht habe wollte ich es mal versuchen.
Bemerkungen und Kommentare sind willkommen!
Im Anhang 6 gepackte Dateien (einmal als Zip, einmal als Rar). Alle in ein Verzeichnis entpacken und hauptfenster.m ausführen.
Beschreibung: |
|
Download |
Dateiname: |
passingvariables.zip |
Dateigröße: |
12.3 KB |
Heruntergeladen: |
2969 mal |
Beschreibung: |
|
Download |
Dateiname: |
passingvariables.rar |
Dateigröße: |
12.05 KB |
Heruntergeladen: |
1641 mal |
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.028
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 24.09.2008, 07:50
Titel:
|
|
Moin,
feine Sache, allerdings sind mir beim ausprobieren zwei Sachen aufgefallen:
1. Sobald ich die Phase ändern möchte, öffnet sich zwar dar Slider kurz, verschwindet dann aber sofort wieder hinter dem Hauptfenster.
Meine Lösung wäre:
Oder du ordnest die einzelnen Figures so an, dass die Standardpositionen so gewählt sind, dass immer alle zu sehen sind. Der Slider über und das kleine Fenster links neben dem Hauptfensters.
2. Wenn ich den Bereich ändere, werden zwar die Achsen verändert, aber nicht der Bereich in dem die Funktion berechnet wird - ist das beabsichtigt?
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?
|
|
|
nschlange |
Themenstarter
Ehrenmitglied
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 24.09.2008, 08:14
Titel:
|
|
Hi,
besten Dank für die Rückmeldung.
steve hat Folgendes geschrieben: |
1. Sobald ich die Phase ändern möchte, öffnet sich zwar dar Slider kurz, verschwindet dann aber sofort wieder hinter dem Hauptfenster.
Meine Lösung wäre:
Oder du ordnest die einzelnen Figures so an, dass die Standardpositionen so gewählt sind, dass immer alle zu sehen sind. Der Slider über und das kleine Fenster links neben dem Hauptfensters. |
Ich wollte eigentlich den zweiten Weg wählen, um den 'Programmablauf' nicht zu stören. Werde es bei Zeiten ändern.
steve hat Folgendes geschrieben: |
2. Wenn ich den Bereich ändere, werden zwar die Achsen verändert, aber nicht der Bereich in dem die Funktion berechnet wird - ist das beabsichtigt? |
Ja, eigentlich schon, ich wollte eine primitive Zoom-Funktion schreiben.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.028
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 24.09.2008, 10:51
Titel:
|
|
Achso.
Naja, mit dem Programmablauf ists halt in sofern schwierig, das ich im ersten Moment den Slider garnicht gesehen hab. Der Button wurde gedrückt, aber (auf den ersten Blick) passierte nix. Das hatte mich halt verwirrt
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?
|
|
|
nschlange |
Themenstarter
Ehrenmitglied
|
|
Beiträge: 1.320
|
|
|
|
Anmeldedatum: 06.09.07
|
|
|
|
Wohnort: NRW
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 24.09.2008, 11:08
Titel:
|
|
steve hat Folgendes geschrieben: |
Achso.
Naja, mit dem Programmablauf ists halt in sofern schwierig, das ich im ersten Moment den Slider garnicht gesehen hab. Der Button wurde gedrückt, aber (auf den ersten Blick) passierte nix. Das hatte mich halt verwirrt
Gruß
Alex |
Verständlich, mich hat vor allem das dauernde Verschiebenmüssen genervt...
Aber wenn ich uiwait benutze müsste ich doch vor dem Weiterarbeiten erst das Fenster schließen, oder?
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.028
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 24.09.2008, 11:15
Titel:
|
|
Nein. Bei funktioniert alles so wie es sollte (in meinen Augen )
_________________
>> 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?
|
|
|
Gusa |
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 05.10.12
|
|
|
|
Wohnort: Freising
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.10.2012, 16:26
Titel:
|
|
Hi Leute,
hab mir das Beispiel angeguckt. Blick da leider ohne Kommentare nicht durch. setappdata und getappdata doc's in matlab sind ohne beispiele. Bin langsam am verzweifeln. Was ich machen will, ist von einer GUI edit text feld den wert an eine andere GUI static text feld uebergeben. Wie kann ich das realisieren?
Gruss,
Andi
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.10.2012, 16:38
Titel:
|
|
Hallo,
Beispiele zum Arbeiten mit Daten in GUIs gibt es u.a. hier:
Zur Kommunikation zwischen GUIs gab es auch hier schon Anfragen; eine Suche nach setappdata sollte ein paar Treffer bringen.
Grüße,
Harald
|
|
|
MrHyde |
Forum-Anfänger
|
|
Beiträge: 40
|
|
|
|
Anmeldedatum: 05.08.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.12.2013, 12:52
Titel: Re: GUI Daten Variablen übergeben guidata setappdata getapp
|
|
Hallo zusammen.
Vielen Dank für das schöne Beispiel. Es hat mir eine ganze Menge gebracht.
Einzig was ich in dem Beispiel nicht verstehe sind diese beiden Aufrufe hier:
Könnte mir jemand erklären welche Funktion sie in dem Programm übernehmen?
Oder habe ich doch setappdata nicht verstanden?
Ich dachte, z.B.
legt im root-Workspace eine Variable hhauptfenster mit dem Verweiswert von gcf an!
Das würde doch übersetzt für
bedeuten, dass in einem gcf-Workspace eine Variable myphase mit dem Wert 0 angelegt wird.
EDIT:
Ich habe nun einfach mal etwas weiter rumgespielt...
... scheinbar entspricht:
demhier:
Also ist offenbar die Variable myphase in dem Workspace von gcf.
Somit ändert sich meine Frage:
Warum wird myphase in gcf geschrieben und nicht in 0?
Gibt es dafür einen logischen Grund?
Kann mich bitte jemand
Vielen Dank und viele Grüße
MrHyde
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.12.2013, 20:29
Titel:
|
|
Hallo,
ich verstehe nicht, was du mit deinen Versuchen bezweckst.
Die Frage kann ich aber beantworten:
Zitat: |
Warum wird myphase in gcf geschrieben und nicht in 0? |
Weil du dazu
schreiben müsstest.
Grüße,
Harald
|
|
|
MrHyde |
Forum-Anfänger
|
|
Beiträge: 40
|
|
|
|
Anmeldedatum: 05.08.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.12.2013, 21:00
Titel:
|
|
Hallo Harald,
danke für deine Rückmeldung. Was ich damit bezwecke... ich versuche die Funktionsweise von setappdata und getappdata zu verstehen.
Nein, ich möchte verstehen ob es einen bestimmten Grund dafür gab setappdata(gcf,...) zu verwenden, statt setappdata(0,...).
Lag es an bestimmten Zugriffsrechten für den Workspace oder ...
Ich als Anfänger wäre nicht auf die Idee gekommen die Variable in gcf zu schreiben. Ich hätte alles in 0 geschrieben.
Daher meine Frage. Sorry wenn diese für Euch erfahrene Matlab-Anwender seltsam rübergekommen ist. Es war in der Tat eine ernst gemeinte Frage.
Ich hoffe daher trotzdem auf Hilfe.
Gruß
MrHyde
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 07.12.2013, 21:22
Titel:
|
|
Hallo,
bei setappdata geht es in erster Linie darum, Daten abzuspeichern, die mit einer bestimmten Anwendung (häufig einer GUI) in Verbindung stehen, um sie später mit getappdata wieder 'abholen' zu können. 0 ist root, also die gesamte MATLAB-Session, und steht damit nicht mit einer bestimmten Anwendung in Verbindung. Es ist also meines Erachtens relativ sinnfrei, auch nur irgendetwas in 0 zu schreiben. Da könnte man gleich globale Variablen verwenden - und dass das nicht empfohlen ist, wird an verschiedensten Stellen diskutiert.
Der Hauptanwendungsfall von getappdata/setappdata sind grafische Benutzeroberflächen, da es insbesondere bei mit GUIDE erstellten GUIs nicht einfach ist, die Daten von einem Callback in den anderen zu bekommen.
Mit Standard-Tags wäre meine Empfehlung hier:
und später dann
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|