我想获得向量s的子集,以下代码没有给出正确的结果。但如果我写
VectorXd e=s.head(svp)
是的,是的。为什么以下代码出错?谢谢!
Eigen::JacobiSVD<Eigen::MatrixXd> svd(input, Eigen::ComputeThinU |
Eigen::ComputeThinV);
VectorXd s=svd.singularValues();
int svp=5;
s=s.head(svp); //Wrong!
答案 0 :(得分:0)
您应该使用conservativeResize
来执行此类任务。错误是一种别名;你正在覆盖你正在读取的数据(尽管在这种情况下,我相信eigen会为它抛出一个明确的错误)