2

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

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

4

2 回答 2

4

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

于 2013-09-29T22:05:29.793 回答
3

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

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

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

以编程方式设置“坚持曲线”行为

在调用之前获取的句柄datacursormode并将SnapToDataVertex属性设置为offdatacursormode on

cursorMode = datacursormode(gcf);
set(cursorMode, 'SnapToDataVertex', 'off');
datacursormode on
于 2013-09-29T23:24:56.377 回答