如何将矩阵的元素转换为单个向量

时间:2015-06-15 18:44:06

标签: matlab vector

我有一个矩阵如下:

A= 1 2
   3 4
   5 6
   7 8

我想以这样的方式排列这个矩阵的元素,它会给我以下输出:

B= 1
   2
   3
   4
   5
   6
   7
   8

任何建议都会有所帮助。谢谢!

1 个答案:

答案 0 :(得分:7)

进行A的转置并将其展开到矢量中:

B = A.';
B = B(:);

或者,您可以使用reshape

B = reshape(A.', [], 1);

首先转置矩阵A的原因是因为MATLAB以 column-major 格式展开,这意味着首先遍历列。您试图按行进行此操作,因此您需要转置输入以达到相同的效果。

这里是输出的样子(使用两者):

>> A= [1 2
   3 4
   5 6
   7 8];
>> B = A.';
>> B = B(:);
>> B

B =

     1
     2
     3
     4
     5
     6
     7
     8

此外:

>> A= [1 2
3 4
5 6
7 8];
>> B = reshape(A.', [], 1)

B =

     1
     2
     3
     4
     5
     6
     7
     8