2013-07-04 32 views
0

我想獲取矢量s的子集,下面的代碼沒有給出正確的結果。但如果我寫eigen3中的頭部函數產生錯誤的結果

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! 

回答

0

您應該使用conservativeResize執行此類任務。該錯誤是一種混疊;你正在覆蓋你正在閱讀的數據(儘管在這種情況下,我相信本徵會給它一個明確的錯誤)

相關問題