0

我想得到向量的一个子集,下面的代码没有给出正确的结果。但如果我写

    VectorXd e=s.head(svp)     

e 是对的。为什么下面的代码是错误的?谢谢!

    Eigen::JacobiSVD<Eigen::MatrixXd> svd(input, Eigen::ComputeThinU |
            Eigen::ComputeThinV);
    VectorXd s=svd.singularValues();
    int svp=5;
    s=s.head(svp);  //Wrong!
4

1 回答 1

0

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

于 2013-09-13T19:02:22.793 回答