在 Matlab 中,我希望在右键单击图中的数据点时打开上下文菜单。所选操作应调用一个函数,我想在其中访问数据点的坐标以进行进一步处理。
Matlab 示例是:
cm = uicontextmenu(fig);
m = uimenu(cm);
m.Text = "Function description";
m.MenuSelectedFcn = @(src,event)myFunction(src,event);
function myFunction(src,event)
...
end
plot(x, y, "ContextMenu", cm);
这按预期工作,因为当我右键单击数据点并单击上下文菜单中的操作时,将调用 myFunction。但是,我无法访问 myFunction 中数据点的 x,y 值。
CurrentPoint
属性,因此您的函数将类似于
function myFunction(src,event)
cp = get( gca, 'CurrentPoint' );
x = cp(1,1);
y = cp(1,2);
fprintf( 'x = %.2f, y = %.2f\n', x, y );
end
使用中:
但是,您所描述的功能可以使用数据提示光标和
Export Cursor Data To Workspace...
选项以本机方式实现(无需自定义回调)。
其他优势包括
您可以使用内置的刷牙工具获得更多选项,您可以在其中刷洗数据区域,然后