【问题标题】:Iterating structures array field's values迭代结构数组字段的值
【发布时间】:2017-01-18 01:34:02
【问题描述】:

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

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

【问题讨论】:

    标签: matlab struct matlab-struct


    【解决方案1】:

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

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

    【讨论】:

    • 我刚刚实现了这个fields{m}元胞数组,再次感谢
    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 2010-12-25
    • 2013-09-25
    • 2016-07-28
    • 2021-11-10
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多