问题标签 [matlab-app-designer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
67 浏览

matlab-app-designer - hit.IntersectionPoint 在 matlab 的 ButtonDownFcn 中返回 NaN

我用 Matlab 的 AppDesigner 开发了一个 GUI。为了获得鼠标点击,我ButtonDownFcn为我绘制的图像设置了回调。然后在回调中我阅读了hit.IntersectionPoint

_

在我的电脑上一切正常,但在同事的电脑上,它返回 NaN。据我们所知,区别在于:

有谁知道这些是否可能是IntersectionPoint返回 NaN 的一个因素?或者有其他可以解决问题的建议?

我在这里读到IntersectionPoint只有从 2018a 起才可用。我的同事使用的是 2017b,但是当我在我的计算机上测试 2017b 时,IntersectionPoint 仍然有效。

0 投票
2 回答
2166 浏览

matlab - 如何使用 Matlab 的 App Designer 将文本包装在标签中

我正在使用 Matlab 的 App Designer 制作一个 GUI 应用程序。我在 GUI 中放置了一个标签,用于向用户提供说明。随着它们的进行,说明文本的长度会有所不同。当文本长度达到标签的末尾时,它会给出...并切断消息。我希望文本包含在标签内。

我试过textwrap了,但它给了我一个错误,指出父级不能是标签。

要重现,请在 Matlab 的 App Designer 上创建一个新应用,将标签拖放到画布上,然后在其中键入长文本。标签大小将调整以使其离开应用程序窗口。如果你调整标签宽度,它只会用 截断文本...,如下所示: 设置

按下Run不会改变它。

当我将文本更改为没有换行的字符串时,这就是我想要自动生成的内容: 期望的

我用来更改文本的代码是这样的:

我希望我不需要重新发明轮子并设计自己的文本换行功能。是否有一种方法尚未在文档中阐明?

0 投票
1 回答
351 浏览

matlab - Matlab 获取布局句柄

正如标题所述,我需要获取我的 Matlab 应用程序的句柄。我的课程源自matlab.apps.AppBase并且是app.UIFigure(如果那样的话,我还在学习 Matlab)。我的主要目标是将鼠标光标更改watch为单击按钮并在后台处理数据后。

我努力了:

但是 gcf 只是空的,所以它创建了一个新图形。我也得到了所有的数字,使用:

它找到了我正在使用的所有数字。我相信我需要获取整个应用程序图并找到句柄,但我不确定该怎么做。

0 投票
1 回答
119 浏览

string - 有没有办法将字符串转换为 matlab GUI 中的函数调用?

我试图在另一个 matlab GUI 中调用 matlab GUI。这个 matlab GUI 有一个在 GUI 中可用的字符串的名称。我想知道如何将此字符串更改为函数,以便可以调用它来打开 GUI。

因此我的问题是;如何将字符串转换为函数,以便它可以调用 matlab 中的另一个 GUI?

我正在尝试在 matlab 应用程序设计器中构建一个 GUI。这个想法是 GUI 启动函数调用称为 AutomaticUpdate 的自定义函数。此函数在特定共享目录中搜索其自身的最新版本。(例如 GUI_v1_1 查看设置目录中是否存在 GUI_v1_2 或更高版本)。找到后,AutomaticUpdate 功能会将这个新版本从共享目录复制到运行它的目录。我现在希望 GUI_v1_1 在复制后自动启动 GUI_v1_2。

将 GUI 从共享目录复制到运行“旧”GUI 的目录的过程是基于对 GUI 标题中存在的数字的比较,方法是将标题转换为字符串,然后选择并比较其中的数字细绳。可以通过这种方式选择和复制共享目录中可用的最新版本。我现在有字符串格式的 GUI 标题,但是要在 GUI 中打开它,我需要有函数格式的标题。复制 GUI 名称后,手动将其复制到 GUI 启动函数中(即 GUI_v1_2)可以工作并启动第二个 GUI。在复制 GUI 后直接获取字符串并将 str2func 应用于该字符串不会。

这有效(如果刚刚从共享文件夹复制的 GUI 被命名为 TestApp_v1_2):

这不会:

看到复制的最新文件名为 TestApp_v1_2,fname 包含字符串“TestApp_v1_2”,所以我希望它可以工作。我需要它来工作,因为代码必须独立于刚刚复制的版本的名称。它应该始终打开刚刚复制的最新版本。

0 投票
0 回答
64 浏览

java - 如何将 Java 库用于独立应用程序(MATLAB、MacOs)

我在我的独立应用程序(使用 Matlab 2019 的应用程序编译器开发)中使用 java 库时遇到问题。

我正在使用 XLWRITE 命令在 MacO 上创建 excel 文件。出于这个原因,我需要导入 java .jar 文件。当我使用 AppDesigner 时,我的代码工作正常,但是当我尝试编译应用程序时,它不再工作了......

我想用那种代码来导入java文件并使用XLWRITE命令......

你能帮我解决这个问题吗?

谢谢 :)

0 投票
0 回答
45 浏览

matlab - 从 matlab 检索属性到应用程序设计器

我有一个带有一些属性的 matlab 脚本和一个 App 设计器脚本。

我想知道是否可以使用 appdesigner 脚本使用或检索 matlab 脚本的属性。

我的目标是将属性的值与 0 进行比较并启动脚本?

感谢您的帮助!

0 投票
0 回答
138 浏览

matlab - 在 AppDesigner GUI 中从 Matlab 脚本调用属性

我用应用程序设计器创建了一个 GUI,它在用户选择一个文件并按下启动按钮后启动一个 matlab 程序:

n_component是我的testLectureXMLmatlab 程序中的一个属性,只有当用户选择的文件为空时,他才等于 0。但这就像我的应用程序无法识别n_component为我的testLectureXML程序的属性一样。

如果可能的话,如果n_component = 0我想停止程序

我怎样才能做到这一点 ?谢谢 !

编辑:为了停止程序,我正在考虑创建exitProgram = 0 and if exitProgram = 1 return 0和在 GUI 代码中,exitProgram = 1如果文件为空,但我不知道如何使用 GUI 代码访问 matlab 脚本的属性。

0 投票
1 回答
1062 浏览

matlab - 如何在 MATLAB App Designer 中使用属性在两个应用程序之间共享数据?

我使用 MATLAB App Designer 创建了两个应用程序(分别命名为“firstapp”、“secondapp”),我希望它们共享将在单元格中输入的数据和变量。

首先,第一个应用程序通过按下按钮打开第二个应用程序。这部分很清楚。除此之外,我试图将一些输入变量提供给第二个应用程序,并将这些输入变量的基本计算发送到我的第一个应用程序。问题是当我按下第一个应用程序中的按钮以打开第二个应用程序时,发生了几个错误。

在执行此操作时,我添加了一个公共属性,包括输入参数(a、b、c)和它们的结果,并通过按下按钮将结果发送到第一个应用程序。

第二个应用程序中的代码应保留输入参数并将结果变量发送到第一个应用程序,如下所示:

按键功能:

我只想将结果发送到第一个应用程序,但遇到几条错误消息:

1) “类‘secondapp’中属性‘a’的默认值无效”

2)“必须从类实例访问类'secondapp'中的属性'aEditField',因为它不是常量属性。”

0 投票
2 回答
286 浏览

matlab - 为无限循环脚本创建 MATLAB GUI

我目前正在处理 MATLAB 脚本调用 manager.m 。此脚本包含一个无限循环,用于监控传入命令的通信线程。

我想为这个程序创建一个状态窗口,以便用户知道它运行正常(例如指示良好的连接状态、当前状态等)。请注意,我不希望用户能够从这个 GUI 输入任何信息,它的唯一目的是作为一个显示器。

我继续使用 App Designer 程序创建了一个简单的 GUI。我将 manager.m 脚本转换为在 GUI 启动期间调用的函数。

但是,我遇到了一个问题,因为该函数包含一个无限循环,因此关闭 GUI 并不会真正终止该函数。本质上,该函数只是保持循环/执行。

在多次尝试解决问题失败后,我觉得我没有像通常使用的那样使用 GUI 应用程序设计器。似乎应用程序负责循环方面,并在必要时简单地监视用户输入以执行事件。通过将我自己的无限循环添加到管理器函数中,这似乎使一切变得复杂。

所以我的问题是:如果我想为无限循环的 MATLAB 脚本创建状态显示,这样做的首选方法是什么?

0 投票
1 回答
884 浏览

matlab - 如何在 App Designer 中的另一个图表上绘制一个图表?

在应用程序设计器(MATLAB)中,我有两个要显示在彼此之上的图表。这就是我所做的:

如果我要摆脱 for 循环中的 app.UIAxes,它会工作并分别绘制两个图,但我希望它能够在 UIAxes 上绘制它。目前,我只看到一个白屏,如果我要运行它,我的绘图应该是。