最近在关注MATLAB中GUI界面设计,我想在界面中设计一个按钮,然后点击按钮加载数据,可以加载外部数据,比如.mat文件,然后将mat数据中的变量全部加载到工作空间中。
代码如下:
[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl', 'All MATLAB Files (*.m, *.fig, *.mat, *.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file');
if (filename==0 & pathname==0)
msgbox('您没有选择文件,请重新选择!','打开文件出错','error');
else
Numdata = load(strcat([pathname,filename])); %加载数据,保存为一个结构体
dataname=fieldnames(Numdata); %获取结构体的所有变量名,保存为一个矩阵
length = size(dataname,1); %获取矩阵的长度
for i=1:length
strname = dataname(i,1);
assignin('base',char(strname), getfield(Numdata,char(strname)));% 要将变量名转换为字符串,getfield获取结构体中指定变量的值,然后用assignin将变量加载到工作空间
end
msgbox('打开及读取数据完毕!','确认','warn');
end
最后可以将.mat中所有的变量成功加载matlab的工作空间中,这段代码放在按钮的回调函数下。