如何使用 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.var
(app
是对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
我有单独的 .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.var
(app
是对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