最近在关注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的工作空间中,这段代码放在按钮的回调函数下。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐