我有这段代码:
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_nb
乘2矩阵。
答案 0 :(得分:0)
这是高度未经优化的代码,但原因很明显。您的代码在该代码的每次迭代中都会分配给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
这样,您每次都会向矩阵添加两列,并在每次迭代时添加一行。