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

mehren Plots innerhalb einer figure -> eine Plot rauslös

 

Peter Quint
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 07.04.2011, 15:57     Titel: mehren Plots innerhalb einer figure -> eine Plot rauslös
  Antworten mit Zitat      
Hallo,
ich habe folgendes Problem:

Ich habe eine Gui in der ein Bild dargestellt werden. Danach wird ein Zielpunkt und mehre Hinternisse geplottet.

Nun soll man den Punkt bzw. Hinternisse löschen (und neu erstellen) können.

Muss ich dafür für jeden Plot eine neue figure auf der gleichen Position wie die ursprüngliche figure machen (mit transparenten Hintergrund) welche ich dann manuel löschen kann oder gibt es eine elegantere Möglichkeit einen von mehren Plots innerhalb einer figure zu löschen?
Private Nachricht senden Benutzer-Profile anzeigen


Peter Quint
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 07.04.2011, 16:30     Titel:
  Antworten mit Zitat      
Ich kann nun das Problem etwas spezifizieren.
Ich arbeite mit guide. In der OpeningFcn habe ich folgenden Code:
Code:
function targetGui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to targetGui (see VARARGIN)
handles.x=1;

imshow('pout.tif','parent', handles.axes1);
hold on;
handles.targetPoint=[0,0];
handles.targetPoint_plot=plot( handles.axes1,10,10,'+', 'Color', 'red','LineWidth',15,'parent', handles.axes1);
t', handles.axes1);
%.......
 

Hier ist der Callback des Buttons:
Code:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
delete(handles.targetPoint_plot);
handles.x=handles.x+2;

handles.targetPoint_plot=plot( handles.axes1,handles.x, handles.x, '+', 'Color', 'red','LineWidth',15, 'parent', handles.axes1);
h=impoint(handles.axes1);
position=wait(h);
disp(position);
guidata(hObject, handles);


Nun die Sachlage: Wenn man den Button zum ersten Mal klickt ist alles toll! Soll heißen: Der erste Punkt verschwindet, der neue wird gezeichnet. Beim zweiten Klick gibt es direkt an der "delete"-Stelle einen Error:

??? Error using ==> delete
Invalid handle object.

Leider weiß ich nicht, woran es liegt, da in den Handles ein Wert unter handles.targetPoint_plot steht
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2011, 23:21     Titel:
  Antworten mit Zitat      
Hallo Peter,

[code]function pushbutton1_Callback(hObject, eventdata, handles)[/ code]
Hier wird der "handles"-Struct übergeben, der bei der Definition des Callbacks existierte! Du möchtest aber den Struct bekommen, der dynamisch angepasst wurde:
[code]function pushbutton1_Callback(hObject, eventdata);
handles = guidata(hObject);
...
% Update the [handles]
...
guidata(hObject, handles)[/code]
Bist Du sicher, dass die "handles" von Button kommen, oder werden sie an die FIGURE angehängt?

Dann gäbe es noch die Möglichkeit nicht das PLOT-Objekt zu löschen, sondern nur die Koordinaten des existierenden anzupassen (Suche im Forum nach "XData", "YData").

Gruß, Jan
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.