循环遍历MatLab结构中的字段名

时间:2015-08-11 15:03:13

标签: matlab loops struct

我有一个MatLab“struct”,具有不同的“级别”和“子结构”。打印到单元格时,“struct”中包含的数据如下所示:

report.COUNTRY.SOURCE.SCENARIO.CATEGORY.ENTITY = YEAR YEAR ...;

作为一个最小的例子:

report.HUN.CRF2014.BASEYEAR.CAT0.CO2 = 1991 1992 1993 1994
report.HUN.CRF2014.BASEYEAR.CAT0.CH4 = 1995 1996 1997
report.HUN.CRF2014.BASEYEAR.CAT0.H2S = 1990 1991 1992
report.HUN.CRF2014.BASEYEAR.CAT1.N2 = 1991 1992 1993
report.HUN.CRF2014.BASEYEAR.CAT1.FGASES = 1990 1991 1992

为了生成列出不同变量组合的表,我想循环遍历“struct”中包含的字段名。

我目前正在尝试编写能够执行此操作的功能:

fields=fieldnames(struct);
for categoryidx=1:length(fields)
categoryname=fields{categoryidx};
    if isstruct(struct.(categoryname))
        category=fieldnames(struct.(categoryname));
        for entityidx = 1:length(category);
            entityname = category{entityidx};
            if isstruct(struct.(categoryname).(entityname))
            gases=fieldnames(struct.(categoryname).(entityname));
            end
        end
    end
end

不幸的是,这只是生产任何东西!有没有人知道如何在这样的matlab结构中循环字段名?谢谢!

0 个答案:

没有答案