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