迭代结构数组字段的值

时间:2017-01-18 01:34:03

标签: matlab struct matlab-struct

如何迭代/循环结构数组字段的值。

对于1x1结构

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

我这样做:

fields = fieldnames(student)

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

但我不知道如何迭代1 x 2:

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

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

1 个答案:

答案 0 :(得分:1)

您需要另一个ngFor循环

for

或者,您可以使用点表示法创建comma separated list这一事实,您可以将它们放在单元格数组(用于字符串)或普通数组

fields = fieldnames(student);

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

我通常更喜欢使用第二种方法来从结构数组中访问相同的字段。