2017-01-18 73 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,再次感谢 –