如何将矩阵的行连接成向量?
Posted
技术标签:
【中文标题】如何将矩阵的行连接成向量?【英文标题】:How do you concatenate the rows of a matrix into a vector? 【发布时间】:2011-02-13 00:28:30 【问题描述】:对于一个 m×m(方形)数组,如何将所有行连接成一个大小为 m^2 的列向量?
【问题讨论】:
矩阵连接通常不意味着乘法吗? 我想他只是想把方阵“压平”成列向量,不是吗? 【参考方案1】:有几种不同的方法可以将矩阵折叠成向量,具体取决于您希望矩阵的内容如何填充该向量。这里有两个例子,一个使用函数reshape
(在第一个transposing矩阵之后),一个使用colon syntax(:)
:
>> 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
【讨论】:
【参考方案2】:将矩阵更改为向量的一个非常重要的注意事项是,如果您使用A(:)
,MATLAB 会从矩阵的列中生成输出向量
例如:
A = [1 2 3 ; 4 5 6]
B = A (:)
B = [1 4 2 5 3 6]
您可以在下图中看到变化的方向。
【讨论】:
以上是关于如何将矩阵的行连接成向量?的主要内容,如果未能解决你的问题,请参考以下文章