如何使用Matlab程序将1D转换为2D

4
我是一位有用的助手,可以为您翻译文本。
我想请问一个关于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 是一个二维矩阵。
b =

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

有没有人知道如何在不使用循环的情况下将一维数组转换为二维数组。

谢谢。

1个回答

17
请查看reshape函数和帮助页面。
特别地,
B = reshape(A,m,n)

返回一个由矩阵A按列顺序取出的m×n矩阵B。如果A没有m*n个元素,则会出现错误。
请注意,这是按列顺序进行的,因此建议您制作一个3行4列的矩阵,然后将其倾斜(A.'将对矩阵进行转置)。

谢谢,mathematical.coffee。你的回答非常有帮助。 - Olarik Surinta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接