2016-10-07 5 views
0

Если я хочу прочитать местоположение мозаики, нажмите на изображение, которое я могу сделать, используя callback действие.Обратный вызов мыши в MATLAB для линейного графика

function[]=FooBar 
Img=imshow(FooMatrix,'callback',@(s,e)ImageClickCallback()); 

function ImageClickCallback(objectHandle,~) 
    axesHandle = get(objectHandle,'Parent'); 
    coordinates = get(axesHandle,'CurrentPoint'); 
    coordinates = round(coordinates(1,1:2)) 
end 
end 

Это хорошо работает для изображений, но теперь у меня есть оси с линиями. Я попытался установить callback подпрограмму, соответствующую axes или line, но я получил сообщение об ошибке

Error while evaluating uicontrol Callback

Error using hg.figure/set The name 'callback' is not an accessible property for an instance of class 'figure'.


фона:
Я пытаюсь создать GUI с графиком линии, скажем y=f(x), позволяющий пользователю выбирать точки на линии. Идея состоит в том, чтобы прочитать координаты щелчка мыши и выделить точку [f'(y),y] или [x,f(x)], где f' является обратной функцией f. Что-то вроде Data Cursor функция.

ответ

2

callback Недействительное свойство объекта линии. Вы захотите установить свойство ButtonDownFcn объекта линии.

h = plot(1:3, 'ButtonDownFcn', @(s,e)ImageClickCallback() 

ButtonDownFcn свойства также доступен для большинства элементов пользовательского интерфейса (в том числе осей)

set(gca, 'ButtonDownFcn', @mycallback) 

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

  • Нет связанных вопросов^_^