概述
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)
原因:定义新变量时,默认没有初始化,需要指定变量的大小(size)。 譬如我的有问题的代码为:
Eigen::VectorXd ptsx_;
由于后续要利用,这里实际上是要定义一个动态向量。这里只有声明,它就是一个空的向量,Eigen会更严格地给出报错。正确的做法是加入size。譬如:
Eigen::VectorXd ptsx_(6);
最后
以上就是贪玩羽毛为你收集整理的Eigen库下声明变量时——谨记要初始化的全部内容,希望文章能够帮你解决Eigen库下声明变量时——谨记要初始化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复