WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Komplette Axes löschen

 

Caidence
Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2010, 09:58     Titel: Komplette Axes löschen
  Antworten mit Zitat      
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.

Kurzer Codeschnipsel:
Code:

a1 = axes('Tag','Feld1',...
          'Units','centimeters',...
          'Position',[1.3,2.5,23,14.5],...
          'Color','w','Visible','off');

cla(a1)
plot(a1,data(:,1),data(:,2));
title(name)
xlabel('x-Werte')
ylabel('y-Werte')
xlim([0 max(data(:,1))])
ylim([0 max(data(:,2))])

 

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).

Ich hoffe, es ist verständlich, was ich meine? Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2010, 10:58     Titel:
  Antworten mit Zitat      
Hallo,

probier mal
Code:

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Caidence
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2010, 11:21     Titel:
  Antworten mit Zitat      
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...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2010, 11:27     Titel:
  Antworten mit Zitat      
Hallo,

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.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Caidence
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2010, 11:36     Titel:
  Antworten mit Zitat      
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 Smile

DoppelteAchsenbeschriftung.jpg
 Beschreibung:

Download
 Dateiname:  DoppelteAchsenbeschriftung.jpg
 Dateigröße:  271.4 KB
 Heruntergeladen:  460 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2010, 11:43     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
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.

Wie man das umgehen kann, habe ich ja beschrieben.

Andere Frage: warum erstellst du eigentlich jedes Mal ein neues Koordinatensystem anstatt in dem bestehenden weiterzuarbeiten?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Caidence
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2010, 12:02     Titel:
  Antworten mit Zitat      
Ich hab es mit den handles nicht so. Hab ich leider kaum verstanden und daher irgendwie weggelassen Wink

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!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.07.2010, 12:38     Titel:
  Antworten mit Zitat      
Hallo,

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?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Caidence
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 35
Anmeldedatum: 01.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2010, 12:43     Titel:
  Antworten mit Zitat      
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 Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.