在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

这样,每次向矩阵中添加两列,并在每次迭代中添加一行