Eigen庫的配置比較容易,可以參考博客http://blog.csdn.net/abcjennifer/article/details/7781936中的相關(guān)內(nèi)容。關(guān)于Eigen庫的矩陣+-×運(yùn)算可參考:http://blog.csdn.net/augusdi/article/details/12907341中的相關(guān)內(nèi)容。本文主要講解利用Eigen庫計(jì)算矩陣的特征值及特征向量并與Matlab計(jì)算結(jié)果進(jìn)行比較。
#include <iostream>#include <Eigen/Dense>#include <Eigen/Eigenvalues>using namespace Eigen;using namespace std;void Eig(){ Matrix3d A; A << 1, 2, 3, 4, 5, 6, 7, 8, 9; cout << "Here is a 3x3 matrix, A:" << endl << A << endl << endl; EigenSolver<Matrix3d> es(A); Matrix3d D = es.pseudoEigenvalueMatrix(); Matrix3d V = es.pseudoEigenvectors(); cout << "The pseudo-eigenvalue matrix D is:" << endl << D << endl; cout << "The pseudo-eigenvector matrix V is:" << endl << V << endl; cout << "Finally, V * D * V^(-1) = " << endl << V * D * V.inverse() << endl;}int main(){ Eig();}
計(jì)算結(jié)果:
clear allclcA = [1 2 3;4 5 6;7 8 9][V,D] = eig(A)
Matlab計(jì)算結(jié)果
本人是在實(shí)驗(yàn)中利用Eigen庫求取最小特征值對應(yīng)特征向量做PCA分析時使用,曾經(jīng)再不知道有Eigen庫的情況下自己寫過矩陣相關(guān)運(yùn)算的模板類,現(xiàn)在接觸到Eigen庫,就把困擾過自己的問題今天做一個小小總結(jié)。
聯(lián)系客服