MATLAB 中的鼠标点击回调以绘制线图
Mouse click callback in MATLAB for line plot
如果我想阅读鼠标的位置,请单击某些图像,我可以使用 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)
使用户能够在线路上的 select 点。想法是读取鼠标单击的 [x,y]
坐标并突出显示点 [f'(y),y]
或 [x,f(x)]
,其中 f'
是 f
的反函数。像 Data Cursor
函数那样。
callback
不是线对象的有效 属性。您需要设置线对象的 ButtonDownFcn
属性。
h = plot(1:3, 'ButtonDownFcn', @(s,e)ImageClickCallback()
ButtonDownFcn
属性 也可用于大多数 UI 元素(包括轴)
set(gca, 'ButtonDownFcn', @mycallback)
如果我想阅读鼠标的位置,请单击某些图像,我可以使用 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)
使用户能够在线路上的 select 点。想法是读取鼠标单击的 [x,y]
坐标并突出显示点 [f'(y),y]
或 [x,f(x)]
,其中 f'
是 f
的反函数。像 Data Cursor
函数那样。
callback
不是线对象的有效 属性。您需要设置线对象的 ButtonDownFcn
属性。
h = plot(1:3, 'ButtonDownFcn', @(s,e)ImageClickCallback()
ButtonDownFcn
属性 也可用于大多数 UI 元素(包括轴)
set(gca, 'ButtonDownFcn', @mycallback)