如何将矩阵的行连接成向量?

35
对于一个m×m(方形)数组,如何将所有行连接成大小为m^2的列矢量?

矩阵连接通常意味着乘法吗? - Xavier Ho
5
我认为他只是想将这个方阵压缩成一个列向量,对吗? - Paul R
2个回答

64

有几种不同的方法可以将矩阵折叠成向量,具体取决于您希望矩阵的内容如何填充该向量。以下是两个示例,一个使用函数reshape(在首先转置矩阵之后),另一个使用冒号语法(:)

>> M = [1 2 3; 4 5 6; 7 8 9];    % Sample matrix
>> vector = reshape(M.', [], 1)  % Collect the row contents into a column vector

vector =

     1
     2
     3
     4
     5
     6
     7
     8
     9

>> vector = M(:)  % Collect the column contents into a column vector

vector =

     1
     4
     7
     2
     5
     8
     3
     6
     9

1
转换矩阵为向量时,需要注意的一个非常重要的点是,MATLAB 从矩阵的列中生成输出向量,如果使用 A(:)
例如:
A = [1 2 3 ; 4 5 6]

B = A (:)

B = [1 4 2 5 3 6]

你可以在下面的图片中看到变化的方向。 变化方向

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