我将循环遍历代码k次(其中k = 1,2,3,4,5)。在每个循环中,我创建一个名为“atomDistances”的变量。显然,我现在拥有它的方式,我只从最后一次k迭代(k = 5)得到“atomDistances”变量。
我是否可以通过将整数变量k(1,2,3,4,5)插入变量名atomDistances_k来在每次迭代中创建一个名为“atomDistances_1,atomDistances_2,...,atomDistances_5”的变量?
如果在MatLab中可以实现这一点有困难,因为它似乎没有其他几种语言版本。谢谢!!!
答案 0 :(得分:4)
您建议可以使用eval
,如下所示:
eval(sprintf('atomDistances_%d = atomDistances;',k));
我建议不要使用此方法,因为使用eval
通常不是最佳做法。您是否尝试过使用单元阵列?例如:
atomDistances = cell(1,5);
for k=1:5
atomDistances{k} = ...;
end
然后,您可以使用atomDistances{1}
等访问每个循环结果
答案 1 :(得分:0)
当然,Matlab可以做到这一点。使用eval
。下面的循环创建了您要求的五个变量。
for k=1:5
eval(['atomDistances_' num2str(k) '=' num2str(k)]);
end