MATLAB:在for循环中为结构添加字段

时间:2016-01-25 01:40:03

标签: arrays matlab field structure cell

我有一个嵌套的for循环,想在第一个循环中创建命名字段,然后在下一个循环中保存到该字段。像下面的代码,第一次迭代将创建structure.first并添加'工作'那个领域。谢谢!

structure = [];
namelist = ['first', 'second', 'third'];
p = 5;
for i = 1:p
    structure(end+1) = struct(namelist(i), {});
    for j = 1:10
        if condition = true
            structure(j).namelist(i) = 'works';
        end
    end
end

1 个答案:

答案 0 :(得分:4)

您的代码存在一些问题。这是一个清理版本。请注意,从字符串值向结构添加字段的最佳方式是:<<struct_name>>.(<<field_name_str>>) = <<value>>。此外,if语句测试条件是否成立,因此不需要测试它是否为真。最后,namelist应存储为单元格数组。

structure = [];
namelist = {'first', 'second', 'third'};
for i = 1:length(namelist)
    for j = 1:10
        if condition
            structure.(namelist{i})='works';
        end
    end
end