我在matlabs应用程序设计器中创建了一个应用程序。该应用程序包括一个带有一些数据点的UIAxes元素。
当通过";正常的";matlab,它工作得很好。我可以使用dcm_obj = datacursormode(app.UIFigure)
并随后使用click_coords1 = getCursorInfo(dcm_obj);
来选择点和检索坐标。
使用Matlab编译器编译应用程序(共享->独立桌面应用程序->在包中包含运行时(并运行编译后的版本后,无法再选择数据点。当我点击图中的一个数据点时,根本不会发生任何事情。未选择数据点,也不会显示任何工具提示。通常返回坐标的代码现在什么也不返回。我还注意到这个数字本身看起来不那么好看(散点图圆圈看起来像正方形(。
其他功能似乎也起作用:下拉菜单和按钮,用于检索&在图中绘制数据,在图中画新数据也没有问题。我也可以平移这个数字(尽管出于某种原因,这在Ubuntu 20中非常慢,但在CentOS 8中不是(。
我使用提供的bash脚本运行该应用程序:./run_myapp.sh [path to matlab]
以本地用户或root用户身份运行应用程序没有区别。当引用matlab运行时或";正常的";matlab。
详细信息:
Matlab运行时版本:V98
"正常";matlab版本:R2020a
操作系统:Ubuntu 20.04/CentOS 8
可以使用matlab应用程序设计器提供的示例Patients Display应用程序来重现该问题。将其编译为包含运行时的独立桌面应用程序。安装它并使用提供的bash脚本运行它。单击数据点是不可能的(但在应用程序设计器中可以(。
我也遇到了同样的问题。在几次尝试失败后,我发现以下方法有效:
dcm_obj = datacursormode(app.UIFigure);
if isdeployed
dcm_obj.Enable = 'on';
end
";被复制";命令是为了避免在MATLAB中执行代码时发出警告。然而,在部署的版本中,您需要实际点击数据点来获得数据提示,而在MATLAB中,只需将鼠标悬停在数据点上就足够了。