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

Ola*_*nta 3 matlab

我想问一个关于Matlab程序的问题.

我有矢量 a

a = [1 2 3 4 5 6 7 8 9 10 11 12];
Run Code Online (Sandbox Code Playgroud)

我想将矢量转换a为2D数组.通常,我使用此代码进行转换.

m =1;
for i=1:4
   for j=1:3
      b(i,j) = a(m);
      m=m+1;
   end
end
Run Code Online (Sandbox Code Playgroud)

然后b是2D矩阵.

b =

     1     2     3
     4     5     6
     7     8     9
    10    11    12
Run Code Online (Sandbox Code Playgroud)

任何人都有想法在不使用循环的情况下将1D转换为2D.

谢谢,

mat*_*fee 15

查看reshape功能和帮助页面.

特别是,

B = reshape(A,m,n)
Run Code Online (Sandbox Code Playgroud)

返回m-by- nmatrix,B其元素是从列中获取的A.如果A没有m*n元素,则会产生错误.

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