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
我有一个嵌套的 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