我想在循环中收集数据,例如
for k = 1:10
A=magic(randi(5));
...
end
现在我想收集每次迭代的A数据。 感谢。
答案 0 :(得分:1)
您可以通过多种方式保存此数据并将其存储在单个变量中。由于您的数据在每次迭代时的大小可能不同,因此您可以选择单元格数组或结构来保存数据。
如果您选择使用单元格数组,这样的方法可以起作用:
k = 10;
A = cell(k, 1);
for idx = 1 : k
A{idx} = magic(randi(5));
end
我们创建一个k
元素的空单元格数组,并在循环的每次迭代中填充每个单元格。使用A{i}
将访问迭代i
中找到的数据。您还可以选择使用一个结构,其中每个字段都是基于迭代次数的字符串。这样的事情可以奏效:
k = 10;
A = struct();
for idx = 1 : k
A.(['data' num2str(idx)]) = magic(randi(5));
end
这将在结构k
中创建A
个字段,其中每个字段都是迭代中的数据。您可以通过执行i
来迭代A.datai
来访问数据。