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

patch in axes überschreiben

 

Pepsi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2012, 12:30     Titel: patch in axes überschreiben
  Antworten mit Zitat      
Hallo liebe Wissenden...

ich plotte in meiner GUI eine Zeitreihe und wähle über einen Cursor einen geeigneten Startpunkt für die spätere Auswertung aus. Über ein edit-Textfeld gebe ich eine gewünschte Zeitspanne ein und lasse mir mittels eines patches den "Rahmen" meines gewählten Zeitabschnittes anzeigen. Falls nun im plot ersichtlich wird, dass meine Zeit zu groß bzw. zu klein ist, gebe ich eine neue Zeitspanne ein und der plot soll angepasst werden. Mein Problem ist jetzt, dass das alte patch im plot bleibt und nicht gelöscht und überschreiben wird. hier der codeauszug

Code:

function zeitspanne_Callback(hObject, eventdata, handles)
% hObject    handle to zeitspanne (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of zeitspanne as text
%        str2double(get(hObject,'String')) returns contents of zeitspanne as a double

handles = guidata(hObject);
x = handles.x;
y = handles.y;
cursorpos = handles.cursorpos;


zeit = str2double(get(hObject,'string'));   %Eingabe der gewünschten Zeitspanne und Umwandlung in Double

start = cursorpos (1);
ende = start + zeit (1);

disp ('Zeit:');
disp(zeit);
disp ('Start:');
disp (start);
disp ('Ende:');
disp (ende);

xdata =[start, start, ende, ende];
ydata =[12, -12, -12, 12];
zdata= [1,1,1,1];

findobj(gca);
p = patch (xdata,ydata,zdata, 'Edgecolor','black','FaceColor','none');
 


ich habe schon einiges versucht, um den Beginn zu initialisieren,

(wie z.b.

cla(handles.axes1,'p');

oder

patch_alt = findobj(gca,patch);
delete patch_alt;)


aber bekomme immer nur Fehlermeldungen oder nicht das gewünschte Ergebnis...

Kann mir jmd weiterhelfen?

VG


tschun
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 73
Anmeldedatum: 05.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2012, 12:46     Titel:
  Antworten mit Zitat      
Hi,

Code:

delete(findobj(gca,'type','patch'))
% wahrscheinlich ist  die axes in der handles struktur gespeichert, dann
% würde ich diese nehmen, es kann ja passieren, dass du mehr als eine
% axes in deiner GUI hast, also z.b. handles.axes1
% also etwas wie:
delete(findobj(handles.axes1,'type','patch'))
 


Die Zeile:
Code:

handles = guidata(hObject);
 

ist überflüssig, handles wird bereits an die Funktion übergeben.

Was willst du mit dem
Code:

erreichen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Pepsi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2012, 13:05     Titel:
  Antworten mit Zitat      
wow, vielen dank für die blitzschnelle antwort und die lösung meines problems!

ja die ein oder andere zeile macht wohl nicht so viel sinn... bin erst seit ein paar monaten am programmieren und da macht man wohl noch die ein oder andere überflüssige sache. das finobj (gca) is noch aus nem anderen test einfach mit übergebleiben und nicht gelöscht wurden und fiel mir gar nicht weiter auf, weils ja von der funktion her nicht ins gewicht gefallen ist... Embarassed

also doppletes danke!
 
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.