2017-01-18 106 views
1

如何迭代/循環結構數組字段的值。迭代結構數組字段的值

對於1x1的結構

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

我這樣做:

fields = fieldnames(student) 

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

但我不如何遍歷1×2:

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

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

回答

1

你需要有其他任何for loop

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

再次感謝噸Suever .... –

+0

我剛剛意識到這* fields {m} * cell array,再次感謝 –