有没有办法让鼠标在matlab中粘到曲线上?

有没有办法让鼠标在matlab中粘到曲线上?,matlab,mouseevent,Matlab,Mouseevent,我有一个java程序,其高斯曲线的绘制范围为-3到3(f=exp(-x^2/3))。我捕获鼠标事件,让鼠标只能沿曲线移动,以便拾取值(f)和相应的x。在matlab中实现同样的事情是可能的吗?我在matlab中搜索鼠标事件,但它似乎没有任何低级鼠标控制,甚至没有响应 根据A.Donda的建议,我尝试了datacursormode。如果有两条曲线显示在同一个图形上,我可以很容易地跟踪鼠标在任意一条曲线上的位置,我想知道是否有可能在跟踪时捕获事件,以便在跟踪另一条曲线时,在相同的x坐标下返回另一条曲

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


根据A.Donda的建议,我尝试了datacursormode。如果有两条曲线显示在同一个图形上,我可以很容易地跟踪鼠标在任意一条曲线上的位置,我想知道是否有可能在跟踪时捕获事件,以便在跟踪另一条曲线时,在相同的x坐标下返回另一条曲线的值?或者如果有可能改变显示黄色提示的方式或内容?我真正感兴趣的是两条曲线在同一x位置的函数值的和或差或积

不完全相同,但您可以在图形窗口中使用“工具/数据光标”,也可以通过工具栏中的“黄色十字光标注释”图标访问,或者使用函数
datacursormode

您无法使用matlab轻松设置鼠标位置(参见示例)。正如@A.Donda所提到的,简单的解决方案是使用数据游标

用鼠标设置“坚持曲线”行为

datacursormode打开时
,您可以右键单击轴并将
选择样式
设置为
鼠标位置
。然后,选择曲线上的第一个点。将出现包含
(x,y)
的数据提示。选择第二个点,但按住鼠标键:数据光标将粘在曲线上并跟随鼠标

通过编程设置“坚持曲线”行为

获取
datacursormode
的句柄,并在调用
datacursormode on

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

这看起来很有趣,它给了我一些新的想法(我编辑了我的问题),但不知道是否可以在Matlab中实现它。我认为Magla对您的问题的最后评论应该可以帮助您实现您想要的。要修改数据提示,右击,然后“编辑文本函数”将打开一个回调编辑器。