1

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

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

1 回答 1

1

你需要有另一个for循环

fields = fieldnames(student);

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

或者,您可以使用点表示法将创建一个逗号分隔列表的事实,您可以将它们放置在单元格数组(用于字符串)或普通数组中

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

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

于 2017-01-18T01:36:21.473 回答