matlab如何遍历工作空间中的所有对象

jhl*_*u87 6 workspace matlab object

我有一个matlab工作区,其中所有变量都是使用load命令从.mat文件加载的.现在,我想遍历所有这些对象并对它们执行操作.

有没有明确说明他们的名字访问对象?例如工作区(1)?

Lam*_*eek 10

我同意@ Simon的回答,但是如果您感兴趣的是从单个.mat文件加载的变量,那么最好使用结构赋值形式的load:

S = load('myfile.mat')
Run Code Online (Sandbox Code Playgroud)

现在不是在你的工作区使用"X","Y","Z",你有S.x,S.yS.z.

然后,您可以使用以下内容迭代结构的所有字段:

for f = fieldnames(S)'
   disp(['Field named: ' f{1} ]);
   disp('Has value ')
   disp(S.(f{1}));
end
Run Code Online (Sandbox Code Playgroud)


Sim*_*mon 9

您可以使用who以下字符串获取所有变量的列表:

myvars = who;
Run Code Online (Sandbox Code Playgroud)

那么如果你想对变量的内容做一些事情(who只给出变量名),你可以这样做:

for i=1:length(myvars)
    myfunction(eval(myvars(i)))
end
Run Code Online (Sandbox Code Playgroud)