我开发了一个matlab代码,我现在必须修改它才能变成循环。我希望在每次迭代时使用不同的变量名保存我的数据(不会在每次迭代开始时更改变量名)。在这里,我提供一个示例来解释我想要做的事情:
Matrix = rand(1000,3);
Dominated = 0;
Flag = 0;
k=0;
for k=1:10
for i = 1:size(Matrix,1)
Dominated = i
end
genvarname(sprintf('Dominated_%d',k)) = Dominated(:,:);
end
但是,如果我执行此代码,它不会为我提供一个名为“Domianted_1”,“Domanted_2”等的变量,但是有一个名为“genvarname”的变量(在每次迭代时替换)包含已完成的内容我的代码。如何修改代码以在每次迭代时获得不同的变量名称?
答案 0 :(得分:2)
您正在寻找assignin
,替换:
genvarname(sprintf('Dominated_%d',k)) = Dominated(:,:);
与
assignin('base',sprintf('Dominated_%d',k),Dominated(:,:));
但我建议使用结构:
allDominated.(sprintf('Dominated_%d',k)) = Dominated(:,:)