我想使用两个循环和一个给定的等式生成一个数组。在我的代码中,第一个for循环每次都会覆盖在上一次运行中生成的元素。我的数组最终只有最后一组元素(对于a = 9)。这是代码:
%Pixel information generated
n=3
m=3
for a=7:9
for r=1:3
k(r)=a+ (r-1)*(n*m)
disp(k);
r=r+1
end
a=a+1
end
我如何避免这种情况并获得" a"的每个值K
的所有值?
由于 的Manoj
答案 0 :(得分:1)
由于r
是您的索引,因此您的索引将仅在1到3之间变化。每次执行第一个循环时都会这样。因此,您需要一个独立的索引。您也不需要增加r
和a
,因为for循环函数会自动执行此操作。最后,最好使用k
的单元格数组,因为它在for循环中不断增长。
<强>代码强>:
n=3;
m=3;
k = cell(1,1); % cell array
index = 1; % independent index
for a=7:9
for r=1:3
k{index}=a+(r-1)*(n*m);
index = index + 1;
end
end
k = cell2mat(k)
<强>输出强>:
k =
7 16 25 8 17 26 9 18 27