我想问一个关于Matlab程序的问题。
我有矢量a
a = [1 2 3 4 5 6 7 8 9 10 11 12];
我想将矢量a
转换为2D数组。通常,我使用此代码进行转换。
m =1;
for i=1:4
for j=1:3
b(i,j) = a(m);
m=m+1;
end
end
然后b
是2D矩阵。
b =
1 2 3
4 5 6
7 8 9
10 11 12
任何人都有想法在不使用循环的情况下将1D转换为2D。
谢谢,
答案 0 :(得分:15)
查看reshape
功能和帮助页面。
特别是
B = reshape(A,m,n)
返回m
- by - n
矩阵B
,其元素从A
逐列获取。如果A
没有m*n
元素,则会出现错误。
请注意,它是逐列的,所以我建议您制作一个包含3行和4列的矩阵,然后将其放在侧面(A.'
将采用矩阵的转置)。