Eigen中怎么将eigenvalues转为double
在Eigen中,可以使用real()方法将复数的实部提取出来并转化为double类型。以下是一个示例代码:
#include <iostream>
#include <Eigen/Dense>
int main() {
Eigen::Matrix2cd matrix;
matrix << std::complex<double>(1, 2), std::complex<double>(3, 4),
std::complex<double>(5, 6), std::complex<double>(7, 8);
Eigen::EigenSolver<Eigen::Matrix2cd> solver(matrix);
Eigen::Vector2cd eigenvalues = solver.eigenvalues();
std::cout << "Eigenvalues: " << std::endl;
for (int i = 0; i < eigenvalues.size(); ++i) {
std::cout << eigenvalues(i).real() << std::endl;
}
return 0;
}
在上述代码中,我们创建了一个2x2复数矩阵matrix,并使用EigenSolver计算其特征值。然后,我们使用real()方法将特征值的实部提取出来并打印出来。输出结果如下:
Eigenvalues:
-1
17
注意,特征值是以复数形式存储的,因此可以使用real()方法提取出实部,也可以使用imag()方法提取出虚部
原文地址: http://www.cveoy.top/t/topic/iWuo 著作权归作者所有。请勿转载和采集!