2017-01-18 8 views
1

構造体配列フィールドの値を反復/ループする方法。 1x1の構造体構造体配列フィールドの値を反復する

student = struct(); 
student.name = 'jim'; 
student.gpa = 1.9; 

については

私はこれを実行します。

fields = fieldnames(student) 

for i=1:numel(fields) 
    var = fields(i) 
end 

をしかし、私はしていないか×2 1を反復する:あなたは、他のいずれかを持っている必要があり

student = struct(); 
student(1).name = 'jim'; 
student(1).gpa = 1.9; 

student(2).name = 'ryan'; 
student(2).gpa = 1.5; 

答えて

1

forループ

fields = fieldnames(student); 

for k = 1:numel(student) 
    for m = 1:numel(fields) 
     var = student(k).(fields{m}); 
    end 
end 

代わりに、私は一般的に使用することを好むドット表記はcomma separated listを作成し、あなたは(文字列の)セル配列または通常の配列

names = {student.name}; 
gpas = [student.name]; 

のいずれかに置くことができるという事実を使用することができます構造体配列から同じフィールドにアクセスするための最も頻繁な方法です。

+0

もう一度お返事ありがとうございます。 –

+0

私はこの* fields {m} *セルアレイを実現しました –

関連する問題