Verfasst am: 05.08.2010, 10:02
Titel: Wie plotte ich mit drawnow nicht in aktuelle GUI?
Hey,
ich hab eine Frage. Wie schaffe ich es dem drawnow oder einem anderen plot oder aktualisierungs Befehl zu sagen, in welche figure er plotten bzw aktualisieren soll?
Ich möchte bei jedem Plot explizit angeben in welche GUI ich plotten möchte.
das Problem dürfte nicht bei drawnow, sondern den vorangehenden Plot-Befehlen liegen. Bei vielen Plot-Befehlen kann man als erstes Argument das Handle des Koordinatensystems (nicht der GUI), in dem geplottet werden soll, angeben (typischerweise innerhalb von GUIDE handles.axes1 oder so).
Wie du die Handles der Elemente einer GUI einer anderen GUI mitteilst, ist dann wieder die andere Frage.
Hey,
und wenn ich patch verwende wie gebe ich dann an in welches axes bzw figure ich plotte?
Ich glaube ich stehe gerade ein bischen auf der Leitung...
p = patch('faces',t, 'vertices',v,'Parent',haxes);
set(p, 'facec', 'b'); % Set the face color set(p, 'facec', 'interp'); % Set the face color flat set(p, 'FaceVertexCData',c); % Set the color set(p, 'facealpha', 1)% Use for transparency set(p, 'EdgeColor', 'none'); % Set the edge color set(p, 'FaceLighting', 'phong');
Da, wenn ich das richtige sehe, immer das axes was als letztes in haxes steht meine erste GUI ist.
Was ich jedoch nicht verstehe ist, dass nach mehrmaligem aufrufen daas Endbild immer noch in die sich immer wieder aktualisiernde GUI geplottet wird.
Gibt es noch etwas was ich dabei beachten muss oder woran könnte das sonst liegen?
Da ich nicht weiß wie ich das machen soll.
Was ich vor allem nicht ganz verstehe ist, warum ich in jeder GUI ein axes habe worin geplottet werden kann wobei ich nur in der ersten mir wirklich eins angelegt habe.
Was ist denn genau die elegantere Version zu meiner?
für mich ist das schwierig zu beantworten, da ich nicht weiß, wie deine GUIs überhaupt miteinander kommunizieren.
Möglichkeiten zum Speichern des Handles auf das Koordinatensystem wären getappdata / setappdata oder das Verwenden der Eigenschaft UserData. Aber auch dazu müssen die GUIs zumindest die Handles des jeweils anderen kennen.
Ich erkläre mal wie es bei mir abläuft:
Also ich habe eine HauptGUI die heißt Projekt und von da aus rufe ich meine SubGUI, die heißt Posen, mittels einer Checkbox auf. Dann werden verschiedene Berechnungen durchgeführt und die SubGUI "Posen" immer wieder mit set auktualisiert. Am Ende der Berechnungen soll mit patch geplottet werden und zwar in meine HauptGUI "Projekt". Der Befehl plottet aber offentsichtlich immer in die zuletzt geöffnete GUI.
Offensichtlich kennst du also in der GUI Projekt die Handles der GUI Posen (sonst könntest du dort ja nicht aktualisieren). Jetzt musst du nur noch erreichen, dass die GUI Posen auch die Handles der GUI Projekt kennt.
Und jetzt wird auch in die HauptGUI geplottet, aber in meiner SubGUI wird trotzdem ein Koordinatensystem angezeigt, warum?!
Und wie bekomme ich es weg?
dieses neue Koordinatensystem entsteht erst mit dem patch-Befehl?
Dann weiß ich auch nicht weiter - abgesehen von der Sache mit 'Parent', die man noch probieren könnte.
Grüße,
Harald
P.S.: Es ist schon klar, dass sich handles.axes1 normal auf die momentane GUI bezieht?
Hey,
das mit Parent habe ich schon ausprobiert aber es kommen lauter Fehlermeldungen und aufeinmal schließen sich alle meine GUIs.
Ich glaube das liegt daran, das die function von der aus patch aufgerufen wird an mehreren Stellen in meinem Quellcode aufgerufen wird. Es ist schwer zu erklären da das Programm sehr umfangreich ist.
die aktuelle ist die, auf die sich die Handles-Struktur bezieht - sprich die, deren Code man gerade ausführt.
Bei den Fehlermeldungen wäre interessant, *welche* Fehlermeldungen kommen.
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
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.