JacobiSVD<MatrixXcd> svd(T0, ComputeFullU | ComputeFullV);
int asize=svd.singularValues().size();
MatrixXcd values=MatrixXcd::Zero(asize,asize);
for(int j=0; j<asize; j++)
{
values(j,j)=svd.singularValues()(j);
}
MatrixXcd S_inv=MatrixXcd::Zero(ncol,mrow);
S_inv.block(0,0,asize,asize)=values.inverse();
C1=svd.matrixV() * S_inv * svd.matrixU().adjoint()*axay;
Eigen库求广义逆矩阵的方法,代码太长,这里是核心部分。
大概思路是回归到数学的SVD方式