eigen3中的头函数产生错误的结果

时间:2013-07-04 05:02:14

标签: eigen3

我想获得向量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!

1 个答案:

答案 0 :(得分:0)

您应该使用conservativeResize来执行此类任务。错误是一种别名;你正在覆盖你正在读取的数据(尽管在这种情况下,我相信eigen会为它抛出一个明确的错误)