使用C ++和Eigen

时间:2016-08-09 22:38:27

标签: c++ c++11 c++14 eigen eigen3

我想用库Eigen选择C ++中矢量的一部分?

我的意思是如果我有这个载体:

VectorXd v(6);
v << 1, 2, 3, 8, 1, 2;

是否有一个返回此向量的函数:

a << 2, 8, 2;

因为我知道如何只选择一个矢量的一部分,但只选择一步而不是两步。

1 个答案:

答案 0 :(得分:2)

没有功能可以完成这个超级特定的事情。如果确实如此,它可能会在eigen block operations之下。你最好的选择是编写自己的功能。类似的东西:

void addConsecutiveSpacedElements(VectorXd &out, const VectorXd &in, int start, int space) {
    int index = 0;
    for (int in_index = start, in_index < in.size(); in_index += space) {
        out[index++] = in[in_index];
    }
}

...

addConsecutiveSpacedElements(a, v, 1, 2);

注意:这本质上是伪代码,因此没有错误检查等。它也是未经测试的。