3

我想问一个关于matlab程序的问题。

我有矢量图a

a = [1 2 3 4 5 6 7 8 9 10 11 12];

我想将矢量转换a为二维数组。通常,我使用此代码进行转换。

m =1;
for i=1:4
   for j=1:3
      b(i,j) = a(m);
      m=m+1;
   end
end

然后b是一个二维矩阵。

b =

     1     2     3
     4     5     6
     7     8     9
    10    11    12

任何人,都有一个不使用循环将 1D 转换为 2D 的想法。

谢谢,

4

1 回答 1

16

查看reshape功能和帮助页面。

尤其是,

B = reshape(A,m,n)

返回其元素按列从 中获取的m逐个n矩阵。如果没有元素,则会导致错误。BAAm*n

请注意,它是按列排列的,因此我建议您制作一个 3 行 4 列的矩阵,然后将其倾斜(A.'将采用矩阵的转置)。

于 2013-02-28T01:50:10.857 回答