赞
踩
- #include <Eigen/Dense>
- #include <iostream>
- using namespace Eigen;
- using namespace std;
- int main(){
-
- MatrixXd K(2,2);
- K << 4, 5, 8, 5;
- cout << "K" << endl << K << endl;
-
- EigenSolver<MatrixXd> es(K);
- MatrixXcd evecs = es.eigenvectors();//获取矩阵特征向量2*2,这里定义的MatrixXcd必须有c,表示获得的是complex复数矩阵
- MatrixXd B;//注意这里定义的MatrixXd里没有c
- B = evecs.real();//得到对应特征向量
- cout << "evecs" << endl << evecs << endl;
- cout << "B" << endl << B << endl; //B
-
- MatrixXcd evals = es.eigenvalues();//获取矩阵特征值 2*1
- MatrixXd D_temp,D;//注意这里定义的MatrixXd里没有c
- D_temp = evals.real();//获取特征值实数部分
- D = D_temp.asDiagonal();
- cout << "evals" << endl << evals << endl;
- cout << "D_temp" << endl << D_temp << endl; //D
- cout << "D" << endl << D << endl; //D
-
- MatrixXf::Index evalsMax;
- B.rowwise().sum().maxCoeff(&evalsMax);//得到最大特征值的位置
- cout << "evalsMax" << endl << evalsMax << endl;
- }
结果
matlab结果
参考链接:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。