迭代结构数组字段的值

Iterating structures array field's values

如何iterate/loop构造数组字段的值。

对于 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;

你需要有另一个 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];

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