如果我想阅读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
例程设置为适当的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)
使用户能够选择线上的点。想法是阅读鼠标点击的[x,y]
坐标并突出显示点[f'(y),y]
或[x,f(x)]
,其中f'
与f
的反函数。像Data Cursor
函数那样的东西。
答案 0 :(得分:2)
callback
不是行对象的有效属性。您需要设置行对象的ButtonDownFcn
属性。
h = plot(1:3, 'ButtonDownFcn', @(s,e)ImageClickCallback()
ButtonDownFcn
属性也可用于大多数UI元素(包括轴)
set(gca, 'ButtonDownFcn', @mycallback)