如何使用 App Designer 中的下拉组件加载单独的 .mat 文件?

How to load seperate .mat files using a drop down component in App Designer?

我有单独的 .mat 文件,研究中的试验,它由相同的变量组成,但文件之间的值不同。

我想在 MATLAB 应用程序设计器中使用下拉组件select 一个文件,加载它的变量并显示各种绘图。

有什么办法可以做到这一点吗? 提前谢谢你。

我一直在像这样加载一个 属性 文件: 变量 = 负载('Trial1.mat') 此代码有效。

然后我尝试使用此布局通过下拉菜单加载文件,但它不起作用..

 function SelectFileDropDownValueChanged(app, event)
            value = app.SelectFileDropDown.Value;
            if strcmp(value,'Trial 1')
                var = load('Trial1.mat');
            elseif strcmp(value,'Trial 2')
                var = load('Trial2.mat');
            elseif strcmp(value,'Trial 3')
                var = load('Trial3.mat');
            elseif strcmp(value,'Trial 4')
                var = load('Trial4.mat');
            elseif strcmp(value,'Trial5')
                var = load('Trial5.mat');
            end

有什么办法可以做到这一点吗? 提前致谢!

您可以按如下方式进行:

将名为 var 的新 属性 添加到 App class。

您可以在设计器的“编辑器”选项卡中添加私有(或public)属性:

将 属性 名称更改为 var(与您的代码示例匹配)。

属性代码块:

properties (Access = private)
    var % Description: store loaded variables
end

现在 var 是 class 会员。
App Designer 基于面向对象的 MATLAB 编程。
只有使用 App class 的代码才能访问 var(因为它是私有成员)。
访问var属性如下:app.varapp是对class'对象的引用)。
请注意 app 是 class 方法的第一个参数(如 SelectFileDropDownValueChanged 方法)。

修改后的SelectFileDropDownValueChanged代码:

% Value changed function: SelectFileDropDown
function SelectFileDropDownValueChanged(app, event)
    value = app.SelectFileDropDown.Value;

    if strcmp(value,'Trial 1')
        app.var = load('Trial1.mat');
    elseif strcmp(value,'Trial 2')
        app.var = load('Trial2.mat');
    elseif strcmp(value,'Trial 3')
        app.var = load('Trial3.mat');
    elseif strcmp(value,'Trial 4')
        app.var = load('Trial4.mat');
    elseif strcmp(value,'Trial5')
        app.var = load('Trial5.mat');
    end           
end