2011-08-26 21 views
5

loadコマンドを使用してすべての変数が.matファイルから読み込まれるmatlabワークスペースがあります。さて、私はこれらのオブジェクトのすべてを繰り返し、それらの操作を実行したいと思います。matlabワークスペース内のすべてのオブジェクトを反復する方法

明示的に名前を付けずにオブジェクトにアクセスすることはありますか?ワークスペース(1)の例?あなたはwhoを使用して文字列としてすべての変数のリストを取得することができます

答えて

8

myvars = who; 

あなたは(whoは、変数名のみを与える)、変数の内容で何かをしたい場合は、その後、あなたが何かを行うことができますこのように:

for i=1:length(myvars) 
    myfunction(eval(myvars(i))) 
end 
10

私は、あなたが興味を持っているすべてを単一の.MATファイルからロードされている変数であればしかし、あなたは負荷の構造体割り当てフォームを使用したほうが良いかもしれ、@サイモンの答えに同意します

S = load('myfile.mat') 

は今、代わりにワークスペースに 'X'、 'Y'、 'Z' を取得し、あなたはS.xS.yS.zを持っています。

あなたは、その後に構造体のすべてのフィールドを繰り返すことができ

for f = fieldnames(S)' 
    disp(['Field named: ' f{1} ]); 
    disp('Has value ') 
    disp(S.(f{1})); 
end 
関連する問題