我正在尝试在循环中保存迭代值。在此函数之后,它们将在进入下一次迭代之前执行其他函数。但是我面临的问题是,它会覆盖它们并成为000000.只能看到最后的迭代值。我该如何解决?有没有办法不使用相同的变量并保存它们?我读了关于追加但是必须使用不同的var名称n这样做并不是很好。
function DistanceMatrix(iteration,distance_row)
load('data.mat','oridata')
load('centroids.mat','centroids')
for i = distance_row:(distance_row+3)
for j=1:300 %no.genes
total=0;
for k=1:6
total=total+((oridata(j,k)- centroids(i,k))^2);
end
DistMatrix_Val(i,j)=sqrt(total);
end
end
save('DistanceMatrix.mat','DistMatrix_Val')
DistMatrix_Val;
GroupMatrix(iteration,distance_row)
end
这是输出。我想存储所有ITERATION的价值而不是覆盖它们。可以帮助吗?
答案 0 :(得分:1)
行。使用
load('DistanceMatrix.mat','DistMatrix_Val')
或
persistent DistMatrix_Val
就在您向我们展示的第一个load
命令之前。
答案 1 :(得分:1)
我认为这是你应该做的:
functon DistanceMatrix = DistanceMatrix(iteration,distance_row)
不是将变量保存在函数末尾,而是将其返回。
返回后,您可以将变量包含在更大的变量中(例如,三维Nx4x300矩阵)
如果需要,您可以在最后保存它。