|
|
Das Problem von real time Plot bei GUI |
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.06.2017, 15:36
Titel:
|
|
Hallo,
mir ist die Frage nicht ganz klar, und auch nicht was die GUI nun machen soll.
Variable auf leer setzen: num = [];
Variable löschen: clear num
Eine Frage ist z.B. auch: wenn erst "Start First" und dann "Start Second" gedrückt wird, sollen dann beiden angezeigt werden?
Grüße,
Harald
|
|
|
|
|
DAFeinfach |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 07.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.06.2017, 16:13
Titel:
|
|
|
|
|
Hallo Harald,
mein Wunsch ist, wenn ich "Start1" drücke, dann bekomme ich nur die erste Graph. wenn "Start 2", dann nur die zweite Graph. wenn "Start Together",dann die beide Graph.
Wie folgende Code bei Function pushbutton_start1_Callback in easy_model.m
Dann mit folgende Code im update_easy.m
kann man den Wert von "num" unter Function pushbutton_start1_Callback in easy_model.m zu der persistent Variable "wert" in update_easy.m geben.
Danach mit folgende Code
kann man nur die Graph über XData1 bzw. YData1 in axes1 beschrieben.
Aber wenn wir die Simulation stoppen(mit Druck von Knöpf "Stop") und den Knöpf "Start2" drücken , kann ich leider noch die erste Graph bekommen. Der Grund ist, die persistent Variable "wert" in update_easy.m ist noch nicht gelöscht. Deshalb kann die folgende Befehle nicht ausgeführt werden.
Das heißt, wert = "Start1". Deshalb kann nur die Code
nochmal ausgeführt werden. Aber die Code
nicht ausgeführt werden.
Das heißt, ich kann nicht die zweite Graph sondern die erste Graph bekommen, obwohl ich schon den Knöpf "Start2" gedrückt habe.
Also, meine Frage ist, wie kann man die persistent Variable "wert" in update_easy.m nach der Simulation löschen ?
Die Anlagen sind relative Dokumente.
Übrigens, als ein Ausländer , es ist relative schwierig für mich ein kompliziertes Problem deutlich zu beschreiben. Ich bedanke dir bei deinem Geduld. Vielen Danke.
Grüße
Jieshen
Beschreibung: |
|
Download |
Dateiname: |
easy_model(4).zip |
Dateigröße: |
41.05 KB |
Heruntergeladen: |
342 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.06.2017, 18:44
Titel:
|
|
Hallo,
dann sollte es doch reichen, die Abfrage
"if isempty(...)"
zu entfernen? Dann wird num eben in jeder Iteration abgefragt.
Grüße,
Harald
|
|
|
DAFeinfach |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 07.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.06.2017, 23:00
Titel:
|
|
Hallo Harald,
das habe ich auch zuerst gedacht und einmal probiert.
Leider habe ich folgende Fehlermeldung bekommt.
Error in using getappdata
----> wert = getappdata(fig_hdl, 'num') (Linie 25)
The value must be a handle.
Bedeutet das, man kann nur am ersten Mal den Wert von "num" zu Variable "wert" geben. Deshalb denke ich, mit der Befehl "if - else" ist es richtig. Das Gedanke ist gleich wie die folgende Code für persistent Variable "plot_handle"
Das Problem ist noch, wie kann man nach der Simulation den Wert von persistent Variable "wert" löschen. Ich denke, man soll ein Befehl für Löschen von dem Wert unter der Callback-Funktion-Stop schreiben. Aber weiß ich noch nicht wie kann man eine solche Befehl schreiben.
Grüße
Jieshen
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 22.06.2017, 11:51
Titel:
|
|
Hallo DAFeinfach,
Irgendetwas läuft hier schief. Der Code ist kurz und übersichtlich und die Aufgabe im Grunde sehr einfach. Der Thread wird aber immer länger.
Du kannst persistente Variablen löschen z.B. mit:
kann ziemlich zeitaufwändig sein, wenn mehrere Figures mit vielen Grafik-Objekten existieren. Die Suche auch 'Type', 'axes' zusätzlich einzuschränken wäre eine gute Idee.
Das lässt sich vereinfachen:
Gruß, Jan
|
|
|
DAFeinfach |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 07.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.06.2017, 12:32
Titel:
|
|
Hallo Moderator,
du hast noch nicht meine Frage verstanden. Das Problem über mehrere Grafik gleichzeitig in ein gleich Axes habe ich schon mit Harald gelöscht.
Jetzt meine Frage ist, wie kann man mit Druck von unterschiedliche Knöpfe unterschiedliche Graph in ein selbe Axes bezeichnen ? Das heißt, wenn ich "Start1" drücke,dann bekomme ich erste Graph in Axes. Und wenn ich "Start2" drücke, dann bekomme ich zweite Graph in Axes.
Deshalb habe ich die Code
in update_easy.m schreiben. Leider ich weiß nicht, wie kann man den Wert von persistent Variable "wert" nach der Simulation löschen. Das ist meine Frage.
Wie dein Vorschlag
geht es nicht.
Ich bitte deine Entschuldigung für einen so langen Thread. Aber wenn du ehrlich denkst, das ist so einfach. Bitte gib mir deine Lösung.
Die Anlage sind mein Dokumente.
Grüße
DAFeinfach
Beschreibung: |
|
Download |
Dateiname: |
easy_model(4).zip |
Dateigröße: |
41.05 KB |
Heruntergeladen: |
330 mal |
|
|
|
DAFeinfach |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 67
|
|
|
|
Anmeldedatum: 07.06.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.06.2017, 18:35
Titel:
|
|
Hallo Harald,
kannst du mir mitteilen, ist das möglich, den Wert von der Variable "wert" in update_easy.m nach der Simulation zu löschen ?
Ich habe auch die Code wie
unter der pushbutton_stop_Callback Funktion geschrieben. Leider geht es noch nicht.
Bitte hilf mir. Danke.
Grüße
Jieshen
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.06.2017, 14:08
Titel:
|
|
|
|
|
Hallo,
eine Möglichkeit ist, in update_easy diese Zeilen zu packen
und aus den Pushbutton-Callbacks heraus den Aufruf so zu machen:
Das ist zwar nicht schön, aber eine andere Möglichkeit fällt mir nicht ein.
Zudem besteht gerade wieder das Problem des verlorengegangenen Tags, daher Änderung in update_easy
Das kann leider bei mehreren Koordinatensystemen wieder zu Problemen führen, allerdings fällt mir auf die Schnelle keine bessere Lösung ein.
Angehängt als .zip.
@ Jan: ich gebe dir recht, dass dieser Thread zu lange geworden ist. Leider stellt die verwendete Schnittstelle mich vor Herausforderungen, und es kommen auch immer weitere Zusatzfragen hinzu.
@ Jieshen: ich habe hier schon sehr viel Zeit investiert. Ich hoffe, dass dir eine Kombination aus all den Vorschlägen hilft, bestehende und weitere kommende Probleme zu lösen. Ansonsten müsstest du wirklich mal jemanden zu Rate ziehen, dessen Aufgabe das ist, z.B. einen studentischen Betreuer oder den Technischen Support von MathWorks. Vielleicht gibt es auch eine viel elegantere Lösung als meine Vorschläge.
Grüße,
Harald
Beschreibung: |
|
Download |
Dateiname: |
easy_model_mod.zip |
Dateigröße: |
41.03 KB |
Heruntergeladen: |
330 mal |
|
|
|
|
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.
|
|