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

Bru*_*nby 0 matlab vector

我有一个矩阵如下:

A= 1 2
   3 4
   5 6
   7 8
Run Code Online (Sandbox Code Playgroud)

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

B= 1
   2
   3
   4
   5
   6
   7
   8
Run Code Online (Sandbox Code Playgroud)

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

ray*_*ica 7

进行转置A并将其展开到一个向量中:

B = A.';
B = B(:);
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用reshape:

B = reshape(A.', [], 1);
Run Code Online (Sandbox Code Playgroud)

首先转置矩阵的原因A是因为MATLAB以列主格式展开,这意味着首先遍历列.您正试图按行进行此操作,因此您需要转置输入以实现相同的效果.

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

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

B =

     1
     2
     3
     4
     5
     6
     7
     8
Run Code Online (Sandbox Code Playgroud)

也:

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

B =

     1
     2
     3
     4
     5
     6
     7
     8
Run Code Online (Sandbox Code Playgroud)