|
|
Werte zwischen function's in GUI übergeben |
|
Ausmilkel |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 11.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2008, 21:11
Titel: Werte zwischen function's in GUI übergeben
|
|
Hallo,
ich bin Anfänger in der Programmierung mit GUI. Folgendes Problem
mittels Guide habe ich mir graphisches Fenster erstellt in diesem will ich eine Datei öffnen. Das sieht so aus:
das klappt ganz gut. In Datenpfad steht jetzt der Pfad sowei der Dateiname als ein String.
Jetzt möchte ich die Variable Datenpfad an eine weitere function im selben .m-Code weitergeben. In dieser function soll diese Variable verwendet werden, etwa so:
Nun hab ich irgendwas mit guidata(hobject,data) gelesen im Forum und in der Hilfe. Ich komme leider bei der Umsetzung nicht klar. Kann mir bitte jemand weiterhelfen? Ich hoffe das Problem ist verständlich und sicherlich für euch leicht zu lösen
Vielen Dank für eure Bemühungen
mfg
Robert
|
|
|
|
|
Schrank |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 10.07.08
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2008, 22:00
Titel:
|
|
Also alle die Ahnung haben bitte mal kurz wegschauen!
BEEEEP
Einfach und schnell geht es, wenn du die Variable in beiden functions "global" machst.
Das ist aber natürlich sehr unschön! Etwas schöner ist es ein Textfeld zu machen, in dem du den User anzeigst welchen Pfad er gewählt hat und diesen dann mit der anderen function wieder ausliest.
Jetzt dürfen alle wieder lesen!
Eine Erklärung wie man in einem mit GUIDE erzeugten GUI sauber mit guidata umgeht könnte ich auch gebrauchen!
Gruß das Möbel
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 13.08.2008, 06:47
Titel:
|
|
Moin,
schaut euch dazu einfach mal dieses Beispiel von mir an:
Klick!
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?
|
|
|
Ausmilkel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 11.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2008, 07:52
Titel:
|
|
Moin,
also dein Beispiel hab ich gestern auch noch gefunden. Funktioniert wunderbar. Ich möchte nur nicht unnötig zusätzliche Dateien erzeugen. Deswegen hoffe ich dass es noch was einfacheres gibt
Dennoch erst mal ein Dankeschön von mir an euch für die Tipps.
Bin auch weiterhin offen für neue Hinweise
mfg
Robert
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 13.08.2008, 07:59
Titel:
|
|
Du musst doch auch keine Dateien erzeugen, wenn du nicht willst!
Es geht bei dem Beispiel auch darum, wie man die Werte von einer Funktion für eine andere verfügbar macht, eben mit
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?
|
|
|
Schrank |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 10.07.08
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2008, 09:38
Titel:
|
|
Hallo steve,
ich kapere hier einfach mal den Thread.
Um also einen Wert innerhalb eines GUIs verfügbar zu machen muss ich
in die Funktion mit dem Wert schreiben und kann anschließend in allen Funktionen mit
auf diesen Wert zugreifen? Dabei muss ich aber aufpassen das ich keinen Namen verwende der einem "Tag" eines Objektes zugeordnet ist, weil ich diesen sonst überschreibe?
Würde das auch mit
funktionieren?
Kleine Anregung am Rande, in deinem übrigens sehr schönem Beispiel hast du das speichern und laden sehr schön kommentiert. Zu guidata hast du aber keine Silbe Kommentar spendiert, wahrscheinlich hat Ausmilkel das deswegen auch überlesen.
Danke
Schrank
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 13.08.2008, 09:47
Titel:
|
|
|
|
|
Schrank hat Folgendes geschrieben: |
Hallo steve,
ich kapere hier einfach mal den Thread.
Um also einen Wert innerhalb eines GUIs verfügbar zu machen muss ich
in die Funktion mit dem Wert schreiben und kann anschließend in allen Funktionen mit
auf diesen Wert zugreifen? Dabei muss ich aber aufpassen das ich keinen Namen verwende der einem "Tag" eines Objektes zugeordnet ist, weil ich diesen sonst überschreibe?
Würde das auch mit
funktionieren? |
Nein, das würde nicht funktionieren, da bei den mit GUIDE erstellten GUIs immer "handles" das Standard-Struct ist. Dadurch musst du dann alle Werte, die du benötigst auch in diesem Struct speichern.
Schrank hat Folgendes geschrieben: |
Kleine Anregung am Rande, in deinem übrigens sehr schönem Beispiel hast du das speichern und laden sehr schön kommentiert. Zu guidata hast du aber keine Silbe Kommentar spendiert, wahrscheinlich hat Ausmilkel das deswegen auch überlesen. |
Danke für den Hinweis. Ich werde es bei der nächsten Gegelegenheit nachholen.
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?
|
|
|
Ausmilkel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 11.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2008, 09:53
Titel:
|
|
ok , so genau hatte ich das gestern abend nich mehr gelesen, bzw habs überlesen und nur das mit dem save gefunden. Aber das mit guidata klappt wunderbar. Ich danke dir!
Gruß
Robert
|
|
|
Ausmilkel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 11.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.08.2008, 10:00
Titel:
|
|
Ergänzung:
Zitat: |
Würde das auch mit
funktionieren?
|
bei mir hat es nach der Änderung im .m-File funktioniert.
Noch eine allgemeine Frage dazu:
Bei handles.wert wäre jetzt handles das struct, und wert ein Element der Struktur? Sehe ich das Richtig?
Gruß
Robert
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 13.08.2008, 12:33
Titel:
|
|
Funktionieren wird es aber nur solange, bis du versuchst danach auf ein anderes handles-Objekt zuzugreifen. Denn du überschreibst damit alles und es ist dann nur test.wert verfügbar und test wird keine weiteren Felder beinhalten, anders als handles.
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?
|
|
|
Schrank |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 10.07.08
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2008, 10:56
Titel:
|
|
Hallo Alex,
immer wenn ich denke ich habe etwas vetstanden kommt kurz danach der Moment zum Nachfragen...
Ich bemühe mich jetzt guidata ausführlich zu nutzen. Habe nun aber das Problem das ich in meinem GUI in einer function eine andere function aufrufe in der ich handle.wert = 23 definiere und da drunter
zu stehen habe.
Zurück in der ersten function kann ich auf diese function nicht mehr zugreifen. Siehe hier:
Warum?
Danke für Deine Geduld
Grüße Schrank
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 14.08.2008, 11:20
Titel:
|
|
Moin,
das liegt daran, dass du die gespeicherten Daten erst noch wieder extrahieren musst - Allerdings weiß ich auch nicht wieso, weshalb, warum...
2. Möglichkeit:
Gruß
Alex
/edit: Fehler behoben
_________________
>> 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?
Zuletzt bearbeitet von steve am 14.08.2008, 12:32, insgesamt einmal bearbeitet
|
|
|
Schrank |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 10.07.08
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2008, 12:10
Titel:
|
|
WIE?
Ich werd wohl noch sehr lange brauchen bis ich Matlab verstehe!
Danke für die super Eklärungen
Schrank
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 14.08.2008, 12:31
Titel:
|
|
AHHHHHHHHHHHHHHHHH!!!!
Verdammtes Copy&Paste...
der 2. Code muss natürlich so heißen:
_________________
>> 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?
|
|
|
Schrank |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 10.07.08
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.08.2008, 12:55
Titel:
|
|
mhh, hatte das zweite garnicht ausprobiert. Aber danke für die Korrektur, werde mir den Thread bestimmt noch ein zwei(dutzend) mal ansehen, wenn ich nen GUI bastel.
Gruß Schrank
|
|
|
|
|
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.
|
|