如何通过Matlab程序将1D转换为2D

时间:2013-02-28 01:31:10

标签: matlab

我想问一个关于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。

谢谢,

1 个答案:

答案 0 :(得分:15)

查看reshape功能和帮助页面。

特别是

B = reshape(A,m,n)

返回m - by - n矩阵B,其元素从A逐列获取。如果A没有m*n元素,则会出现错误。

请注意,它是逐列的,所以我建议您制作一个包含3行和4列的矩阵,然后将其放在侧面(A.'将采用矩阵的转置)。