在做数据降维的过程中,会使用SVD分解。常用的Matlab语法为
[U,S,V] = svd(A)
[U,S,V] = svd(A) 执行矩阵 A 的奇异值分解,因此 A = U*S*V'。
转换c++代码的时候,使用Eigen,可以写成
Eigen::JacobiSVD<Eigen::MatrixXd> svd(A, Eigen::ComputeThinU | Eigen::ComputeThinV);//SVD分解
Eigen::MatrixXd U = svd.matrixU();
Eigen::MatrixXd V = svd.matrixV();
Eigen::VectorXd S = svd.singularValues();