matlab - 编译后无法在 UIFigure 中选择数据点
问题描述
我在 matlabs App Designer 中创建了一个应用程序。该应用程序包含一个带有一些数据点的 UIAxes 元素。
通过“普通”matlab 运行应用程序时,效果很好。dcm_obj = datacursormode(app.UIFigure)
我可以选择点并随后使用 和 检索坐标click_coords1 = getCursorInfo(dcm_obj);
。
使用 Matlab Compiler 编译应用程序(共享 -> 独立桌面应用程序 -> 在包中包含运行时)并运行编译版本后,无法再选择数据点。当我点击图中的一个数据点时,什么也没有发生。未选择数据点且不显示工具提示。通常返回坐标的代码现在什么也不返回。我还注意到这个数字本身看起来不太好(散点图圆圈看起来是方形的)。
其他功能似乎确实有效:下拉菜单和按钮,在图中检索和绘制数据,在图中绘制新数据也没有问题。我也可以平移这个数字(尽管出于某种原因,这在 Ubuntu 20 中非常慢,但在 CentOS 8 中却不是)。
我使用提供的 bash 脚本运行应用程序:
./run_myapp.sh [path to matlab]
以本地用户或 root 用户身份运行应用程序没有区别。引用 matlab 运行时或“普通”matlab 时也没有区别。
详细说明:
Matlab 运行时版本:V98
“Normal” matlab 版本:R2020a
操作系统:Ubuntu 20.04 / CentOS 8
可以使用 matlab App Designer 提供的示例患者显示应用程序重现该问题。将其编译为包含运行时的独立桌面应用程序。使用提供的 bash 脚本安装并运行它。无法单击数据点(但在 App 设计器中可以)。
解决方案
我遇到了同样的问题。经过几次不成功的尝试,我发现以下工作:
dcm_obj = datacursormode(app.UIFigure);
if isdeployed
dcm_obj.Enable = 'on';
end
包含“isdeployed”命令以避免在 MATLAB 中执行代码时出现警告。然而,在已部署的版本中,您需要实际单击数据点以获取数据提示,而在 MATLAB 中,只需将鼠标悬停在它们上面就足够了。
推荐阅读
- r - 单个热图中的两种类型的变量(使用 R)
- java - html转义字符显示问题“'”而不是单引号
- azure - ILB 应用服务环境出站流量
- forms - Google 表格 - 如何在从下拉菜单中选择“完成”时将提交的表单回复复制到工作表并将一行移动到另一个工作表
- ios - 无法构建 Objective-C 模块“SwipeCellKit”
- mysql - 批量 SQL 查询以更新不同表中的字段
- python - 带有其他变量的变量总是打印到同一行 python
- php - PHP Intelephene 中自动完成建议的顺序
- android - 高度基于自身宽度的自定义视图
- excel-formula - MS Excel - 基于另一列重复值的一列总和