任何让鼠标粘在 MATLAB 中的曲线的方法



我有一个Java程序,高斯绘制在-3到3范围内(f = exp(-x^2/3))。我捕获了鼠标事件,并让鼠标只能沿着曲线移动,以便拾取值 (f) 和相应的 x。是否可以在 matlab 中实现同样的事情?我在 matlab 中搜索鼠标事件,但似乎它没有任何低级鼠标控制甚至响应。

正如A. Donda所建议的那样,我尝试了数据光标模式。如果我在同一图形上显示两条曲线,我可以轻松地跟踪鼠标在任一曲线上的位置,我想知道是否可以在跟踪时捕获事件,以便我可以在跟踪另一条曲线时返回另一条曲线在相同 x 坐标处的值?或者是否可以更改显示的黄色提示的方式或内容?我真正感兴趣的是同一x位置两条曲线的函数值的总和或差值或乘积。

不完全相同,但您可以使用图形窗口中的"工具/数据光标",也可以通过工具栏中的"带十字准线的黄色注释"图标或功能datacursormode访问。

你不能用 matlab 轻松设置鼠标位置(参见这里的例子)。正如@A. Donda所提到的,简单的解决方案是使用数据光标。

使用鼠标设置"粘曲线"行为

使用 datacursormode on ,您可以右键单击轴并将Selection Style设置为 Mouse Position .然后,选取曲线上的第一个点。将显示包含(x,y)的数据提示。选择第二个点,但按住鼠标按钮:数据光标将粘在曲线上并跟随鼠标。

以编程方式设置"粘曲线"行为

获取datacursormode的句柄,并将 SnapToDataVertex 属性设置为 off,然后再调用datacursormode on

cursorMode = datacursormode(gcf);
set(cursorMode, 'SnapToDataVertex', 'off');
datacursormode on

最新更新