【发布时间】:2017-06-11 15:36:15
【问题描述】:
我必须使用 EIGEN 在 for 循环中填充值。我正在尝试类似的东西......
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
int main(){
VectorXd s;
for (int i=0,i<10;i++){
s(i) = (double) i;
}
return 0;
}
我可以编译它,但是当我运行程序时出现这个错误:
动态:/usr/include/Eigen/src/Core/DenseCoeffsBase.h:425: Eigen::DenseCoeffsBase::Scalar& Eigen::DenseCoeffsBase::operator()(Eigen::Index) [with Derived = Eigen: :矩阵; Eigen::DenseCoeffsBase::Scalar = double; Eigen::Index = int]:断言 `index >= 0 && index
我知道我可以使用 std::vector 类轻松实现这一点,但我想用 eigen 来实现,因为在那之后我必须做很多矩阵运算。
谢谢!
编辑:对于我的应用程序,我在编译时不知道向量的大小。我想看看eigen中是否有类似vector::push_back的方法。
【问题讨论】:
-
断言
index >= 0 && index < size()失败。 您可以轻松使用std::vector执行相同的越界访问。