|
|
callback/ Variablen an Funktion übergeben und durchlaufen |
|
Nikki |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2014, 17:13
Titel:
|
|
ja, genau, es ist ein Textfeld. Mit str2num hatte ich es auch schon probiert, aber leider ohne erfolg. Und das leider auch nicht.
Kann es sein, dass das Programm die Felder gar nicht aktualisiert? also, dass das Problem wo anders liegt? ich habe mir in der GUI.m einige Breakpoints gesetzt und da passiert gar nichts.
|
|
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 23.09.2014, 17:14
Titel:
|
|
Lies bitte mal meinen letzten Post noch mal genauer
|
|
|
Nikki |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2014, 17:17
Titel:
|
|
grad gesehen
aber dies ist trotzdem nicht die Lösung.
Kann es sein, dass das Programm die Felder gar nicht aktualisiert? also, dass das Problem wo anders liegt? ich habe mir in der GUI.m einige Breakpoints gesetzt und da passiert gar nichts. Das Programm hält nicht an.
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 23.09.2014, 17:22
Titel:
|
|
Dann bitte mal noch den .fig file dazu. Sonst lässt es sich schlecht testen
Edit: Wieso steht hier eigentlich ganz oben im m-file
aber der m-file heißt GUI_03.m? Das sollte schon gleich sein.
Hier rufts du eine Objekt "handles.edit1" auf das gar nicht existiert.
|
|
|
Nikki |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2014, 18:23
Titel:
|
|
In dem handles.edit1 soll das Ergebnis erscheinen.
Beschreibung: |
|
Download |
Dateiname: |
GUI_04.m |
Dateigröße: |
6.27 KB |
Heruntergeladen: |
356 mal |
Beschreibung: |
|
Download |
Dateiname: |
GUI_04.fig |
Dateigröße: |
2.58 KB |
Heruntergeladen: |
332 mal |
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 23.09.2014, 18:59
Titel:
|
|
Kann es sein das dir das Konzept der GUI im generellen nicht klar ist?
Ich nehme mal an es soll ein Eingabefeld für Iterationen (default=50) und ein Eingabefeld für selektion1 (default=0.5) geben? Die greifst aber auf die Felder zu, in denen die Beschreibung "Iterationen" und "Selektion1" steht anstatt dem jeweiligen Feld daneben.
Das große edit1 Feld ist nur für die Resultausgabe?
Du musst schon genau auf die Namen der Objekte achten, wenn du sie mit GUIDE erstellst. Es muss dann auch im code der exakte Name verwendet werden und der Name sollte auch nicht wieder als Variable zum Speichern in handles struct verwendet werden.
Beschreibung: |
|
Download |
Dateiname: |
GUI_04.fig |
Dateigröße: |
2.67 KB |
Heruntergeladen: |
333 mal |
Beschreibung: |
|
Download |
Dateiname: |
GUI_04.m |
Dateigröße: |
6.23 KB |
Heruntergeladen: |
346 mal |
|
|
|
Nikki |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2014, 20:56
Titel:
|
|
hm, also ich greife auf ein Feld doch mit
ich habe jetzt ein mini Beispiel gemacht und es klappt trotzdem nicht
es kommt der folgende Fehler
wenn ich das str2num beim get weglasse, dann kommt der Fehler nicht.
Beschreibung: |
|
Download |
Dateiname: |
gui_versuch2.fig |
Dateigröße: |
2.35 KB |
Heruntergeladen: |
346 mal |
Beschreibung: |
|
Download |
Dateiname: |
gui_versuch2.m |
Dateigröße: |
4.07 KB |
Heruntergeladen: |
360 mal |
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 23.09.2014, 21:25
Titel:
|
|
|
|
|
Du verwendet num2str anstatt str2num. Der Input ist aber schon ein string weshalb es eine Fehlermeldung gibt.
Nächstes Problem sind die Callback und Create function von edit1. Dies führt dazu, dass der Aufruf get(handles.edit1,'String') einen cell array zurück gibt, den aber str2num nicht verarbeiten kann. Ich habe Callback und Create function nun gelöscht und jetzt geht es. Warum in einen Fall ein cell und ohne genannte Funktionen ein char array zurückgegeben wird, kann ich dir auch nicht beantworten. Wobei das wohl nur etwas mit der Create function zu tun hat. Die callback funktion wird aufgerufen, so bald eine Interaktion mit dem Objekt, hier eine Eingabe erfolgt.
Ist die Eingabe in edit1 keine Zahl, ist erg = [] also empty. Deshalb immer schön die Eingabe prüfen
Beschreibung: |
|
Download |
Dateiname: |
gui_versuch2.m |
Dateigröße: |
3.18 KB |
Heruntergeladen: |
351 mal |
Beschreibung: |
|
Download |
Dateiname: |
gui_versuch2.fig |
Dateigröße: |
2.15 KB |
Heruntergeladen: |
343 mal |
|
|
|
Nikki |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2014, 09:33
Titel:
|
|
Die Eingabedaten liest man in dem pushbutton callback ein, oder?
Kann man dann nicht die creat function und callback fct von allen(??) edit Fenstern löschen?
Ich habe jetzt verschiedene Werte bei der OpeningFcn definiert um zusehen was passiert
und dann kommt folgendes raus
ich habe gar kein figure und es werden Werte den textfeldern zugewiesen. Ich habe überprüft, dass ich nur die tags der edit Fenster benutze. Wo kommen die erste handles bis output her? und warum mit so komischen Werten?
Danke für deine Mühe!
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 24.09.2014, 09:52
Titel:
|
|
|
|
|
Die kommen von den Objekten, welche du in deiner GUI verwendest und mit GUIDE erstellt hast. Deshalb darfst du auch nicht die Namen doppelt verwenden, wenn du variablen im struct handles ablegst.
Zitat: |
Die Eingabedaten liest man in dem pushbutton callback ein, oder?
Kann man dann nicht die creat function und callback fct von allen(??) edit Fenstern löschen?
|
Die create Funktion brauchst du sicherlich für die edit Felder nicht. Die callback funktion ist hingegen schon nützlich. Anstatt in den anderen Funktionen immer mit get() die Eingabe zu holen, speicherst du den Eingabewert in der callback funtion des edit Objekts im handle ab.
Vor dem Abspeichern sollte er natürlich noch auf seine Gültigkeit hin überprüft werden.
Der Vorteil ist folgender...
Statt get() wird die callback funktion nur bei einer Interaktion mit dem Feld aufgerufen. Wenn dort nichts passiert, reicht ja die abgespeicherte Variable der Eingabe im handle.
Du musst nicht jedes mal nach dem get() immer wieder die Eingabe überpüfen. Das passiert ja schon in der callback function. Es erspart dir Schreibarbeit, macht das debuggen einfacher und verbessert die Lesbarkeit/Übersichtlichkeit deines codes.
|
|
|
Nikki |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 26
|
|
|
|
Anmeldedatum: 15.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.09.2014, 12:02
Titel:
|
|
das heißt, nur wenn ich in dem edit Fenster etwas abändere, wird die callback funktion gestartet, wenn nicht dann, wird der initialisierungswert genommen.
Es läuft noch nicht zu 100% aber zumindest werden die Werte aus den edit-Fenstern ausgelesen
Danke Dir schonmal vielmals!
Nikki
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 24.09.2014, 12:13
Titel:
|
|
So lange du deine Variablen in der GUI OpeningFcn(...) schön initialisierst (wie in deinem Bsp vorletzter Post), ja.
Wird die callback function aufgerufen, überschreibst du dann deine Variable so fern die Eingabe gültig ist. Der neue Wert bleibt dann so lange, bis sie erneut aufgerufen wird oder du deine Variable an anderer Stelle änderst.
|
|
|
|
Gehe zu Seite Zurück 1, 2, 3
|
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.
|
|