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

delete handles

 

Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2008, 08:37     Titel: delete handles
  Antworten mit Zitat      
Guten Morgen,
ich möchte in einer GUI mehrere plots darstellen. Soweit so gut. Ich habe in der OpenincFcn definiert:
handles.plot_1= 0;
handles.plot_2 = 0;

danach definiere ich in einem Slider-Callback
hold on
delete(handles.plot_1)
handles.plot_1 = plot(x,y)

Ich wollte dadurch meine Performance ein wenig steigern, da ich nicht immer alle Plots neu erstellen möchte.

Leider kommt dabei die Fehlermeldung: Root object may not be deleted.
Was mache ich falsch? Ich möchte ja nicht das Root-object löschen, sondern nur den plot.

Danke im Voraus


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 15.07.2008, 09:16     Titel:
  Antworten mit Zitat      
Moin,

mit
Code:
löschst du die Variable "x". In deinem Fall ist es wahrscheinlich besser mit
Code:
in Verbindung mit "current axes" zu arbeiten.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 15.07.2008, 10:05     Titel:
  Antworten mit Zitat      
Zitat:
Ich wollte dadurch meine Performance ein wenig steigern, da ich nicht immer alle Plots neu erstellen möchte.

Die Gedanke ist gut, aber die Umsetzung ist daneben... Rolling Eyes

Sobald Du PLOT befehl verwendest, erstellst Du immer einen neuen Plot und Handle. Wenn Du den Handle nicht neu erstellen willst, dann musst Du einen vorhanden Handle mit neuen Daten updaten!

d.h. in der OpeningFcn muss ein Plot-Handle initialisiert werden
Code:
handles.plot_1= plot(NaN,NaN);


und im Slider-Callback solltest Du den bereits vorhanden Handle mit neuen Daten initialisieren und zwar wie folgt:
Code:
x_daten = [...]
y_daten = [...]
set(handles.plot_1,'XData',x_daten,'YData',y_daten)



MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2008, 11:38     Titel:
  Antworten mit Zitat      
Vielen Dank für die Antworten.
Ich habe derweil die Plots mit findobj gefunden und mit delete dann wieder gelöscht. Clear hat hier - zumindest bei mir - nicht funktioniert.

Werde aber jetzt noch den Vorschlag mit Updaten ausprobieren. Ist wahrscheinlich der Beste weg.

Danke
Raffnix
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2008, 17:30     Titel:
  Antworten mit Zitat      
Hallo,

die Umsetzung hat ja outsider bereits beschrieben. Ich wollte nur die Fehlermeldung erklären:

in Matlab ist das Handle "0" dem Bildschirm zugewiesen. Z.B. kannst du mit
Code:
get(0,'ScreenSize')
die Bildschirmgröße (bzw. Position) ausgeben lassen. Und den Monitor kannst du als Objekt mal nicht löschen Razz

Ansonsten werden Objekte (oder Dateien) mit
Code:
gelöscht, das war so schon richtig.
Code:
löscht Variablen.
Inwiefern es allerdings sinnvoll ist einen Plot zu löschen und neuzuzeichnen, sei dahingestellt.

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