2016-07-14 8 views
0

Ich möchte dem Diagramm zwei vertikale Bewegungslinien hinzufügen und je nach Position die Werte in den Feldern Start und End ändern.Matlab - Vertikale Bewegungslinien in Achsen GUIDE

Ich würde auch gerne anders herum tun: Durch Ändern der Werte in den Feldern Start und End würde es die vertikalen Linien zu den zugewiesenen Positionen bewegen.

plot

Ich habe dies in den pushbutton1_Callback

hold on; 
plot(x,y); 
SP = 20; 
line([SP,SP],get(handles.axes1,'Xlim'),'Color','red'); 

Ich glaube, ich würde Callback-Ereignisse für mouseButtonDown und mouseButtonUp zu schaffen, aber ich bin sehr neu in Matlab und weiß nicht, was zu Setzen Sie diese Rückrufe

Antwort

0

Der Weg herum: durch Eingabe von Werten in Edit-Boxen Start und Ende können Sie vertikale Linien plotten. In jedem dieser Bearbeitungsfelder (mein Fall edit1 und edit2) Rückrufe schreiben

EDIT: jetzt alte Linien werden gelöscht

function edit1_Callback(hObject, eventdata, handles) 
start=str2num(get(hObject, 'string')); 
if isfield(handles,'startLine'); delete(handles.startLine); end 
handles.startLine=line([start,start],ylim,'Color',[.8 .8 .8]); 
guidata(hObject, handles); 

function edit2_Callback(hObject, eventdata, handles) 
LineEnd=str2num(get(hObject, 'string')); 
if isfield(handles,'LineEnd'); delete(handles.LineEnd); end 
handles.LineEnd=line([LineEnd,LineEnd],ylim,'Color',[.8 .8 .8]); 
guidata(hObject, handles); 
+0

Dank! Nun, wenn ich tippe und zweimal in "Start" oder "Ende" tippe, drückt es zwei Zeilen, aber ich möchte die erste Zeile löschen und nur die zweite Zeile anzeigen. – peetman