Hallo fellow MATLAB-Freunde,
wie ich den Inhalt einer Axes lösche, weiß ich. Ich möchte aber nun die komplette Axes löschen, damit ich beim erneuten Zeichnen dieser Axes (mit anderen Werten) nicht ständig den Namen und die Achsenbeschriftungen der 'alten' Axes zu stehen habe.
Ich arbeite innerhalb einer GUI mit einer "Grundaxes", mit Subplots für eine Art von Werten und mit der oben genannten Axes, um zu umgehen, dass er bei dem Aufruf der Funktion die Werte in den unteren Subplot zeichnet (das passiert, wenn ich vorher die Subplotgrafik hatte und dann die "grundaxes" wieder haben will).
Hallo Harald,
danke für die schnelle Antwort. Mit delete hatte ich es schon versucht.
Wenn ich es direkt vor plot(...) setze, dann meckert er rum, weil er ihn nicht findet (logisch).
Wenn ich es nach dem plot(...) setze, dann ist das Bild weg (auch logisch). Ich wüsste nicht, wo das sonst platziert werden sollte...
vielleicht verstehe ich nicht ganz, was du möchtest? Ich würde das Löschen vor dem axes-Befehl setzen. Dazu müsstest du dir das Handle auf das Koordinatensystem merken (z.B. in der Eigenschaft 'userdata' eines Elements), zudem mit ishandle testen, ob das ein Handle ist (beim ersten Aufruf gibt es ja vielleicht noch keines).
Ich muss aber gestehen, dass mir nicht klar ist, was eigentlich das zugrundeliegende Problem ist. Normal sollte das lösbar sein, ohne das Koordinatensystem zu löschen.
Ja, die Formulierung des Problems fällt mir schwer, weil meine GUI aus vielen Einzelprogrämmchen besteht.
Wenn ich es vor die axes schreibe, dann sagt er mir,dass die Variable a1 unbekannt ist. Ist ja klar, sie wird ja erst danach initiiert.
Ich stelle in meiner GUI verschiedene Eyetrackingdaten da, die verschiedene Darstellungsformen benötigen und nicht alle in ein fertiges Axes passen. Mal hab ich zwei Subplots, um einen Verlauf zu zeigen, mal ein fast figure großen Plot, für die Gesamtdarstellung der Daten. Die werden über verschiedene Menü-Parameter in eine PopUp-Liste jeweils created.
Wenn ich jetzt zweimal den großen Plot nacheinander zeichnen will (z.B. einmal Blickpunkte1.xls, dann Blickpunkte2.xls) dann hab ich immer doppelt,dreifache usw Beschriftungen an der Axes, obwohl ich sie vorher immer mit cla(a1) lösche (nur der Inhalt,leider). Ich habe ein Bild angehängt, damit klar ist, wie ich das "doppelt" meine.
Ich hoffe, es ist jetzt klar, was ich meine, wenn nicht, entschuldige ich mich für meine Inkompetenz
Ich hab es mit den handles nicht so. Hab ich leider kaum verstanden und daher irgendwie weggelassen
Durch das Anklicken des Parameters 'Complete SIgnal' im PopUp-Menü, wird die Funktion aufgerufen, die die Daten plottet. Daher wird immer wieder neu geplottet. Ist vielleicht wirklich zu komplex, um es hier richtig klären zu können.
Aber vielen Dank für die Mühe!
mir war schon klar, dass das aus einem Callback heraus ausgelöst wird. Aber: warum erstellst du das Koordinatensystem nicht einmal, z.B. in der OpeningFcn, sondern jedes Mal neu?
Hey,
ich habe ein Koordinatensystem in der main-Function (ich arbeite nicht mit einer OpeningFcn). Aber es führt leider immer zu Löschungsproblemen der anderen Koordinatensysteme, wenn ich es da schon als plot für diesen Datenteil benenne. Außerdem weiß ich nicht, wie ich eine Axes in eine Funktion übergebe, damit sie das KS auch kennt.
Wie gesagt, ich arbeite mit vielen m-Files und verschiedenen Axesvariationen, das ist etwas umständlich zu erklären.
Thanks again
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.