在MATLAB中以多维数组保存每次迭代生成的数据
我有以下代码:在MATLAB中以多维数组保存每次迭代生成的数据,matlab,matrix,Matlab,Matrix,我有以下代码: for h= 1:length ( bb1{CH(i)}) for k= 1:length( bb2{CH(j)}) if NN(bb1{CH(i)}(h),bb2{CH(j)}(k))==1 d = [bb1{CH(i)}(h),bb2{CH(j)}(k)] end end end 当我运行此代码时,d的值取上一次迭代的值。我想为所有迭代保存它的值。例如,我想要
for h= 1:length ( bb1{CH(i)})
for k= 1:length( bb2{CH(j)})
if NN(bb1{CH(i)}(h),bb2{CH(j)}(k))==1
d = [bb1{CH(i)}(h),bb2{CH(j)}(k)]
end
end
end
当我运行此代码时,
d
的值取上一次迭代的值。我想为所有迭代保存它的值。例如,我想要一个rows\u nb
by 2矩阵。这是高度未优化的代码,但原因很明显。您的代码在该代码的每次迭代中都分配给d
,并且它会不断覆盖自身
因此,如果要保存矩阵中的所有值,则需要附加到d
。因此,请执行以下操作:
for h= 1:length ( bb1{CH(i)})
for k= 1:length( bb2{CH(j)})
if NN(bb1{CH(i)}(h),bb2{CH(j)}(k))==1
d = [d; bb1{CH(i)}(h),bb2{CH(j)}(k)]; %// Concatenate
end
end
end
这样,每次向矩阵中添加两列,并在每次迭代中添加一行