我有一個matlab工作區,其中所有變量都使用load命令從.mat文件加載。現在,我想遍歷所有這些對象並對它們執行操作。matlab如何遍歷工作區中的所有對象
有沒有辦法訪問這些對象而沒有明確說明他們的名字?例如工作區(1)?
我有一個matlab工作區,其中所有變量都使用load命令從.mat文件加載。現在,我想遍歷所有這些對象並對它們執行操作。matlab如何遍歷工作區中的所有對象
有沒有辦法訪問這些對象而沒有明確說明他們的名字?例如工作區(1)?
可以使用who
得到所有的變量作爲字符串列表:
myvars = who;
然後如果你想要做的變量內容的東西(who
只給出變量名),你可以這樣做像這樣:
for i=1:length(myvars)
myfunction(eval(myvars(i)))
end
我@西門的答案達成一致,但是如果你有興趣的是從單個.MAT文件加載的變量,你可能會更好使用負荷的結構,分配形式:
S = load('myfile.mat')
現在不是在你的工作區使用 'X', 'Y', 'Z',你有S.x
,S.y
和S.z
。
然後可以遍歷該結構的所有領域:
for f = fieldnames(S)'
disp(['Field named: ' f{1} ]);
disp('Has value ')
disp(S.(f{1}));
end