eigen 矩阵的对角元素生成向量
时间: 2023-10-10 09:09:31 浏览: 741
求矩阵特征向量
在 Eigen 中,可以通过 `diagonal()` 方法来获取矩阵的对角线元素。该方法返回一个列向量,其中元素为矩阵的对角线元素,例如:
```cpp
#include <iostream>
#include <Eigen/Dense>
int main() {
Eigen::Matrix3d m;
m << 1, 2, 3,
4, 5, 6,
7, 8, 9;
Eigen::VectorXd v = m.diagonal();
std::cout << "v = " << std::endl << v << std::endl;
return 0;
}
```
输出结果为:
```
v =
1
5
9
```
其中,`m.diagonal()` 返回的是一个 `Eigen::DiagonalMatrix` 对象,可以通过隐式类型转换为 `Eigen::VectorXd` 类型的列向量。
除了 `diagonal()` 方法,还可以使用 `diagonal()` 函数来创建一个对角线元素为给定值的矩阵。例如,创建一个 $3\times3$ 的对角线元素为 $1$ 的矩阵可以使用如下代码:
```cpp
Eigen::MatrixXd m = Eigen::MatrixXd::Identity(3, 3);
```
其中,`Eigen::MatrixXd::Identity(3, 3)` 返回一个 $3\times3$ 的单位矩阵。
阅读全文