|
|
R2013a Variablenuebergabe zwischen Callback-Funktionen |
|
Gast00920 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2013, 09:58
Titel: R2013a Variablenuebergabe zwischen Callback-Funktionen
|
|
Hi ,
das Thema gibt's zwar schon aber ich hab ne andere Frage zu dem Thema. in dem anderen Thread hab ich keine antwort bekommen, weil der schon als beantwortet festgelegt wurde glaube ich.
Deswegen hier nochmal:
Wenn man eine Variable aus einer Callback-Funktion in einer anderen verwenden will muss man ja nur in der ersten handles.var = var definieren und in der zweiten dann einfach handles.var verwenden.
Das hat bishier auch geklappt , aber jetzt benutze ich die aktuelle Version von Matlab also Matlab R2013a (vorher R2011a) und jetzt bekomme ich den Fehler, das var unbekannt ist.
Weiss jemand woran das liegt?
Liebe Gruesse
|
|
|
|
|
Gast00920 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2013, 10:32
Titel:
|
|
der Code lautet
[/code]
Hier wird CurFol nicht mehr erkannt. Mit Matlab R2011a hat das einwandfrei funktioniert.
danke in voraus!
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 18.07.2013, 10:48
Titel: Re: R2013a Variablenuebergabe zwischen Callback-Funktionen
|
|
|
|
|
Hallo
Gast00920 hat Folgendes geschrieben: |
Wenn man eine Variable aus einer Callback-Funktion in einer anderen verwenden will muss man ja nur in der ersten handles.var = var definieren und in der zweiten dann einfach handles.var verwenden.
Das hat bishier auch geklappt , aber jetzt benutze ich die aktuelle Version von Matlab also Matlab R2013a (vorher R2011a) und jetzt bekomme ich den Fehler, das var unbekannt ist. |
VAR ist reserviertes Schlüsselwort, in Matlab steht das für Varianz-Funktion, deswegen sollte besser nicht als Variable verwendet werden. Dagegen als Feld in Struktur zu verwenden ist ok.
Mir ist nicht klar, meinst du, dass das gleiche Programm unter 2011 funktioniert hat und unter 2013 nicht mehr? Und du wirklich nicht verändert hast? Oder meinst nur die Vorgehensweise?
Bitte den Code der Beiden Callbacks posten und die komplette Fehlermeldung. Oder ein Minimalbeispiel erstellen, wo man dein Problem nachvollziehen kann. Weil momentan ist das ziemlich rätselhaft, was bei dir da schief läuft.
Zuletzt bearbeitet von denny am 18.07.2013, 13:14, insgesamt einmal bearbeitet
|
|
|
Gast00920 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.07.2013, 11:08
Titel:
|
|
Hi denny !
danke erstmal fuer die Antwort.
Also ich hab eine GUI erstellt mit Matlab R2011b . Der Code lautet
also ich will mit der ersten Callback funktion den Pfad: CurFol auswahlen und mit der zweiten in den Pfad wechseln um da weiterzuarbeiten.
Ich hab an dem Code nichts veraendert sondern nur mit der Matlab Version R2013a geoeffnet und die GUI nochmal laufen lassen.
Jetzt wird mir folgender Fehler angezeigt:
Ich hoffe du weisst jetzt wo das Problem liegt. =(
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 18.07.2013, 13:10
Titel:
|
|
Hallo
ich kann leider nur vermuten, dass du entweder keinen GUIDATA-Befehl in deinem ersten Callback hast, und deswegen die Änderungen nicht in handles abgespeichert werden, oder etwas an der Übergabe der Handles schief läuft.
Kannst du die Callback-Definition, welche du mit GUI-Elemet verknüpft hast, auch posten? Ich meine in GUIDE, und zwar aus PropertyInspector entsprechenden Callback-Definition.
Aber vermutlich das erstere, oder?
sollte in die Richtung laufen
|
|
|
Gast00920 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.07.2013, 05:23
Titel:
|
|
Hallo denny,
ich schliesse jede Callback -Funktion mit guidata(hObject, handles)
wie gesagt bei Matlab R2011b hat alles geklappt.
in den Propertyexpectors der beiden GUI Objecte steht
MainFigure('erste_Callback',hObject,eventdata,guidata(hObject))
MainFigure('zweite_Callback',hObject,eventdata,guidata(hObject))
Habs auch einmal mit guidata(handles.MainFigure , handles) unter beiden Funktionen probiert. Also
Klappt auch nicht =(
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.07.2013, 08:26
Titel:
|
|
Hallo,
wenn sichergestellt ist, dass erste_callback vor zweite_callback ausgeführt wird, sollte es hiermit kein Problem geben.
Bitte zudem auch immer sicherstellen, dass die GUI über die .m-Datei gestartet wird (und nicht über die .fig).
Falls dies nicht weiterhilft, bitte ein lauffähiges Minimalbeispiel (.m + .fig) posten.
Grüße,
Harald
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.07.2013, 10:27
Titel:
|
|
Hallo
da hat Harald recht, in welcher Reihenfolge führst du deine Callbacks aus.
Sonst kein ich deinen Fehler nicht reproduzieren, habe schon probiert in alten Matlab Version (2009a) GUI zu erzeugen und unter 2013a ausführen. Wie gesagt funktioniert ohne Probleme
Deswegen ohne eines lauffähigen Beispiels, wo dieses Problem auftaucht, kann man dir nicht weiter helfen. (fig und m -file werden benötigt)
|
|
|
Gast00920 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2013, 06:09
Titel: .m und .fig file
|
|
Hey,
so habe eine .m .fig und eine .xls file ausgewaehlt.
Also zuerst soll ein Ordner, dann eine excel file und dann die sheets aus der Excelfile ausgewaehlt werden...
Danke!!
Beschreibung: |
|
Download |
Dateiname: |
Versuch1umhanldeszupruefen.m |
Dateigröße: |
6.76 KB |
Heruntergeladen: |
377 mal |
Beschreibung: |
|
Download |
Dateiname: |
Book1.xls |
Dateigröße: |
24 KB |
Heruntergeladen: |
353 mal |
Beschreibung: |
|
Download |
Dateiname: |
Versuch1umhanldeszupruefen.fig |
Dateigröße: |
2.51 KB |
Heruntergeladen: |
339 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.07.2013, 07:43
Titel:
|
|
Hallo,
in Zeile 89 deines Codes sollte es wohl heißen:
Ansonsten bekomme ich, wenn ich die Callbacks der Reihe nach (d.h. von oben nach unten) ausführen lasse, keine Fehlermeldungen.
Grüße,
Harald
|
|
|
Gast00920 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2013, 09:06
Titel:
|
|
Hi Harald und Denny,
hab R2011b nochmal installiert, da hats dann wieder geklappt. Habs dann nochmal bei 2013a versucht und da hats dann auch geklappt ( Zeile 89 hatte ich vorher gar nicht drin und da hatte es auch nicht geklappt und jetzt funktionierts auch ganz ohne die Zeile )
oooooh man was sollte das .. voll die Zeitverschwendung... Ich mag matlab nicht -.-
Aber danke euch, ihr seid super =)..
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.07.2013, 15:10
Titel:
|
|
Hallo,
klar, Zeile 89 ist überflüssig, da in Zeile 90 ja ohnehin das Update gemacht wird.
Ich vermute, dass die Ursache des Problems ein Flüchtigkeitsfehler (z.B. Ausführen von Kommandozeile, aber vorher nicht gespeichert) oder ähnliches war - oder eben, dass du die Popups in der falschen Reihenfolge aktiviert hast. MATLAB kann dafür aber wohl eher wenig ;)
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.
|
|