MATLAB:将字段添加到 for 循环中的结构

MATLAB: add field to structure within a for loop

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

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

您的代码存在一些问题。这是一个清理过的版本。请注意,从字符串值向结构添加字段的最佳方式是采用以下形式:<<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