|
|
Plot aktualisieren mit Xdata, Ydata, das passende Handle daz |
|
rony |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2017, 13:21
Titel: Plot aktualisieren mit Xdata, Ydata, das passende Handle daz
|
|
Ich habe eine GUI mit GUIDE erstellt. Sobald die Gui geöffnet wird, wird in der Opening Function direkt etwas in zwei verschiedene Achsen geplotet.
Ich habe also Axes1 und Axes2. Wenn ich dann aber in einem anderem Callback in der Axes2 plotten will habe ich bis jetzt so gemacht:
Ich will aber nicht immer wieder den Plot Befehl neu ausfhren sondenr Xdata und ydata aktualisieren. Wie kriege ich die Handles dazu?
wenn ich
Zitat: |
axes(handles.Axes1);
handleAaxes1 = plot(x,y) |
ausführe, habe ich ja das handle und kann dann mit
Zitat: |
set(handleAaxes1 ,'XData', x ,'YData', y); |
den Plot aktualisieren.
Aber wenn ich nun in einem anderem Callback bin, geht das nicht mit mit ]set(handleAaxes1 ,'XData', x ,'YData', y
Und zuvor mit setapdata das handleAxes1 speichern und in dem neuen Callback reinladen mit getappdata, bringt nichts es ist ein leeres handle.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 28.04.2017, 13:26
Titel:
|
|
Hallo,
du musst die Daten übergeben, z.B. indem du sie an die Handles-Struktur hängst.
Mehr Möglichkeiten siehe hier:
https://www.mathworks.com/help/matl.....data-among-callbacks.html
Zitat: |
Und zuvor mit setapdata das handleAxes1 speichern und in dem neuen Callback reinladen mit getappdata, bringt nichts es ist ein leeres handle. |
Sollte an sich. Bitte ein reproduzierbares Beispiel dazu.
Grüße,
Harald
|
|
|
rony |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2017, 14:57
Titel:
|
|
Opening Function:
Pusbutton_Callback:
Das ist also der eigentliche Ablauf, und das funktioniert an dem laden des handles nicht.
Mache ich einfach neuen plot also im Pushbutton callback:
Zitat: |
axes(handles.Axes1);
plot(t2,y2); |
das funktioniert, aber ich wollte lieber die Daten updaten als neuen Plot.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 28.04.2017, 15:03
Titel:
|
|
Hallo,
sieht bis auf den Tippfehler (A fehlt bei xes1Handle) gut aus. Vielleicht gibt es hier noch ein anderes Problem.
Poste doch bitte ein reproduzierbares Beispiel. Sicher kann ich mir ein Beispiel basteln und das da reinkopieren. Wozu aber, wenn du so ein Beispiel ja schon hast?
Grüße,
Harald
|
|
|
rony |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2017, 19:35
Titel:
|
|
Ich habe jetzt ein neues GUI erstellt mit 2 Axes und einem Figure, und da funktioniert es.
Aber in meinem Programm klappt das ganze nicht, ich verstehe nicht warum. Ich habe genauso im opening funktion sachen die gebe ich dann mit setappdata rüber und in einem beliebigen Callback holle ich das mit getappdata, nur steht dann in der variable folgendes:
Axes1Handle: 1x1 matlab.graphics.chart.primitive.Line = handle to deleted Line.
woran liegt das?
|
|
|
rony |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2017, 19:53
Titel:
|
|
Ich habs jetzt Das passiert ja in der Opening Funktion. Somit muss ihc zuerst die Gui schließen und öffnen damit das handle dort weitergegeben wird. Jetzt funktioniert es.
Aber allerdings noch nicht ganz so wie es soll. Beim ersten start funktioniert alles also wenn ich Pusbutton klicke kann ch xdata und ydata ändern. So, wenn ich wieder in einem anderne Callback mit getappdata das handle laden will um wieder xdata und ydata zu ändern wird es wie vorhin wieder als leer angezeigt.
Das funktioniert also nur beim ersten start, wird aus der opening FUnktion das handle weitergegeben und das wars, und ich kann es einmal in einem callback laden, aber kein zweites mal in einem anderen callback. auch nicht wenn ich es in dem Pushbutton callback wieder mit setappdata speichere.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 28.04.2017, 20:49
Titel:
|
|
Hallo,
die Linie existiert anscheinend nicht mehr. Warum nicht, kann ich ohne ein reproduzierbares Beispiel , in dem das Problem auftritt, nicht sagen.
Grüße,
Harald
|
|
|
rony |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2017, 22:38
Titel:
|
|
Okay, ich habe es endlich herausgefunden. Ich konnte nicht das ganze Programm posten da es einfach zu viel ist um da auf die schnelle durchzublicken.
Aber das Problem lag darin, dass ich zum Beispiel nochmal irgendwo im Quell Code hatte:
Somit war das zuvor erstellte handles verschwunden, das ich mit handlename = plot(t,y) erstellt hatte.
Bist du auch der Meinung dass es daran liegt, oder liege ich auf dem Holzweg?
Und noch eine generelle Frage beim plotten in einer Gui, muss ich immer beim ersten mal wenn ich in das Axes1 plotten will es erst mit axes(handles.Axes1) auswählen und dann plot(t,y) machen?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.04.2017, 21:16
Titel:
|
|
Hallo,
Zitat: |
Ich konnte nicht das ganze Programm posten da es einfach zu viel ist um da auf die schnelle durchzublicken. |
Dann muss man versuchen, das auf den relevanten Teil einzugrenzen.
Zitat: |
Bist du auch der Meinung dass es daran liegt |
Wenn nicht hold on eingeschaltet ist, ja.
Zitat: |
muss ich immer beim ersten mal wenn ich in das Axes1 plotten will es erst mit axes(handles.Axes1) auswählen und dann plot(t,y) machen? |
Nein, alternativ geht
Für mich ist es so die sauberere Variante.
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.
|
|