Verfasst am: 24.02.2008, 23:15
Titel: Übergabe von Variablen zwischen Funktionen
Hi,
mein Anliegen ist vermutlich gar nicht weiter tragisch, doch ich programmiere erst seit ein paar Tagen mit Matlab und stehe irgendwie auf dem Schlauch, auch die Suche hat bisher nicht geholfen.
Ich hab ein UI erstellt, es sollen ein paar Werte eingelesen, grafisch dargestellt, verändert und dann nochmal in einem zweiten Graphen angezeigt werden.
Hab einen Load-Button mit dem ich die Daten einlese und in zwei Arrays X und Y schreibe, darüber hinaus stelle ich unter selber Load_Callback-Funktion diese auch gleich in Graph_1 dar.
Nun will ich eigentlich erstmal nur über einen zweiten Button dieselben Daten in Graph_2 darstellen, doch scheitere ich bei der einfachen Übergabe der Daten aus den beiden Arrays in die Callbackfunktion des zweiten Buttons.
Habe versucht die Arrays global zu definieren, aber damit hats auch nicht geklappt.
Die grobe Codestruktur sieht so aus:
Code:
% --- Executes on button press in Load. function Load_Callback(hObject, eventdata, handles)
Nicht wundern dass die axes auf die Buttons verweisen, das ist ein Übertragungsfehler. Konnte den Beitrag leider nicht editieren weil noch nicht registriert.
Die Darstellung des geladenen Datensatzes funktioniert auch super, nur die zweite gar nicht weil die Werte fehlen.
Frischfleisch
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.02.2008, 10:33
Titel:
Ok also das Problem mit der globalen Variable habe ich in den Griff bekommen. Hatte nur vergessen die Variable in der zweiten Buttonfunktion erneut zu initialisieren. Die globale Lösung dazu ist ja aber nicht wirklich schön.
Wäre schön wenn jemand noch einen besseren Vorschlag hätte
das funktioniert mit der handles-Struktur und guidata:
Code:
% --- Executes on button press in Load. function Load_Callback(hObject, eventdata, handles)
[filename,filepath] = uigetfile('*.dat', 'Bitte gewünschten Datensatz auswählen');
% Algorithmus der die binären Daten umwandelt und in X und Y schreibt axes(handles.original);
plot(X, Y,'r');
genauso habe ich das mit den Variablen auch geloest, das hat auch funktioniert als ich noch die alte Matlab Version R2011a benutzt habe.
Jetzt nutze ich die aktuelle Version Matlab R2013a 8.8.1.0.604 und die Variablen werden trotz handles.Variable nicht mehr erkannt.
Weiss jemand woran das liegt?
Bitte hänge Deine Frage nicht an eine andere an. Denn dann kann man nicht mehr wissen, auf welche Frage sich eine Antwort bezieht und der "beantwortet"-Status wird sinnfrei.
Leider kann ich Deine Frage aber auch nicht in ein neues Thema verschieben, weil sie dann vollkommen inhaltsfrei wird. Bitte stelle die Frage deshalb selbst nochmal neu und erkläre mit dem entsprechenden Code, was "genauso habe ich das mit den Variablen auch geloest" genau bedeutet.
Gruß, Jan
fdff
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 18.07.2013, 11:06
Titel:
HI Jan,
ja habe ich schon gemacht =)
siehe Thread ' R2013a Variablenuebergabe zwischen Callbackfunktionen'
Danke =)
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
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.