C ++特征非连续子集

时间:2018-06-21 20:01:03

标签: c++ eigen

我对Eigen::VectorXd个非连续子集感到好奇。例如:

Eigen::VectorXd vec = VectorXd::Random(10);
Eigen::VectorXi idx; idx << 2, 5, 6;

Eigen::Block<Eigen::VectorXd> refVec = vec(idx);

但这无法编译。

我已经找到一些先前的问题,例如this one。但是,我在bugzilla上看到,此功能现在应该在Eigen中起作用,这似乎是我上面显示的语法。

任何关于如何在没有for循环的情况下访问非连续元素的见解都会有所帮助。

1 个答案:

答案 0 :(得分:2)

如果您使用default分支并自动执行,则可以立即使用:

auto refvec = vec(idx);

如果您确实无法使用devel分支,请遵循此doc page