Verfasst am: 07.04.2011, 15:57
Titel: mehren Plots innerhalb einer figure -> eine Plot rauslös
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?
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;
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;
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
[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
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.