遍历matlab结构数组中的字段

loop through field in a matlab struct array

我有一个如下所示的 MatLab 结构数组:

'country.source.scenario.category.entity= year'

我想遍历现有的 'country.source.scenario' 组合并生成包含以下字段的单元格或矩阵:类别、实体和年份。 任何人都知道如何做到这一点?谢谢

可以使用fieldnames获取各个层级的字段,在各个子层级使用struct看是否需要继续钻取,例如

fields = fieldnames(str);
for field = fields'
    sub = str.(field{1});
    if isstruct(sub)
        %loop through fieldnames
    end
end

你可以把它放在一个递归函数中,如果你再次调用该函数,就可以在里面。我没有那样做,因为我不清楚你想要什么,结果你似乎只想要标签而不是最后的值。