void PCA(Matrix<double, Dynamic, Dynamic> X) {
//动态存储
Matrix<double, Dynamic, Dynamic> C;
C = X * X.transpose() / X.cols();
int row = 2;
EigenSolver<Matrix<double,Dynamic,Dynamic>> es(C);
//特征值矩阵
Matrix<double, Dynamic, Dynamic> D = es.pseudoEigenvalueMatrix();
//特征向量矩阵
Matrix<double, Dynamic, Dynamic> V = es.pseudoEigenvectors();
//降维矩阵,当取前k行且k<n时,实现降维
Matrix<double, Dynamic, Dynamic> P = V.transpose();
cout << P*X<< endl;
}
Eigen 特征值
于 2022-03-03 11:26:37 首次发布