首页 > 解决方案 > 如何在 MATLAB App Designer 中使用属性在两个应用程序之间共享数据?

问题描述

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

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

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

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

properties (Access = public)
    a = secondapp.aEditField.Value;
    b = secondapp.cEditField.Value;
    c = secondapp.cEditField.Value;
    result = (a + b)^c;
end

按键功能:

function CalculateButtonPushed(app, event)
    firstapp.result2 = secondapp.result;
end

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

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

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

标签: matlabmatlab-app-designer

解决方案


您需要为您的第二个应用程序添加一个参数。它可以在代码视图中完成,通过按下“App Input Arguments”,将出现一个对话框。添加“firstapp”作为参数。

在您的第一个应用程序中,通过按下按钮打开第二个应用程序时。您必须以这种方式调用第二个应用程序。

secondapp(firstapp);

您将能够从您的第二个应用程序访问您的第一个应用程序的所有公共属性。

有关详细信息,请参阅文档。 https://www.mathworks.com/help/matlab/creating_guis/app-designer-startup-function.html


推荐阅读