2016-07-14 4 views
0

Я хотел бы добавить две вертикальные движущиеся линии к графику и в зависимости от их положения, это изменит значения в полях Start и End.Matlab - Вертикальные движущиеся линии в осях GUIDE

Я также хотел бы сделать наоборот: изменив значения в полях Start и End, он переместит вертикальные линии в назначенные позиции.

plot

Я это внутри pushbutton1_Callback

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

Я полагаю, я должен был бы создать события обратной связи для mouseButtonDown и mouseButtonUp, но я новичок в Matlab, и не знаю, что вставлять в эти обратные вызовы

ответ

0

Путь: , вводя значения в поля редактирования. Начало и конец вы можете начертить строки вершин. В каждом из этих полей редактирования (мой случай edit1 и edit2) обратные вызовы пишут

EDIT: Теперь старые строки удаляются

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

Спасибо! Теперь, когда я печатаю и нажимаю два раза в «Пуск» или «Конец», он записывает две строки, но я хотел бы удалить первый и просто показать второй. – peetman

Смежные вопросы