当前位置:   article > 正文

Eigen库下声明变量时——谨记要初始化_eigen::index = long int]: assertion `index >= 0 &&

eigen::index = long int]: assertion `index >= 0 && index < size()' failed.

Eigen库下声明变量时——谨记要初始化

Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。

初用时遇到一个语法问题如下:

Assertion `index >= 0 && index < size()' failed.

Terminal完整报错:

×××/src/Eigen-3.3/Eigen/src/Core/DenseCoeffsBase.h:408: Eigen::DenseCoeffsBase<Derived, 1>::Scalar& 
Eigen::DenseCoeffsBase<Derived, 1>::operator[](Eigen::Index) [with Derived = Eigen::Matrix<double, -1, 1>; 
Eigen::DenseCoeffsBase<Derived, 1>::Scalar = double; Eigen::Index = long int]: Assertion `index >= 0 && index < size()' failed.
Aborted (core dumped)
  • 1
  • 2
  • 3
  • 4

原因:定义新变量时,默认没有初始化,需要指定变量的大小(size)。 譬如我的有问题的代码为:

Eigen::VectorXd ptsx_;

由于后续要利用,这里实际上是要定义一个动态向量。这里只有声明,它就是一个空的向量,Eigen会更严格地给出报错。正确的做法是加入size。譬如:

Eigen::VectorXd ptsx_(6);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/263638
推荐阅读
相关标签
  

闽ICP备14008679号