鼠标在MATLAB中单击回调以获得线图

时间:2016-10-07 21:13:49

标签: matlab callback matlab-figure axes

如果我想阅读mose的位置,请点击某个图片,我可以使用callback操作进行操作。

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例程设置为适当的axesline,但我收到了错误消息

  

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)使用户能够选择线上的点。想法是阅读鼠标点击的[x,y]坐标并突出显示点[f'(y),y][x,f(x)],其中f'f的反函数。像Data Cursor函数那样的东西。

1 个答案:

答案 0 :(得分:2)

callback不是行对象的有效属性。您需要设置行对象的ButtonDownFcn属性。

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

ButtonDownFcn属性也可用于大多数UI元素(包括轴)

set(gca, 'ButtonDownFcn', @mycallback)