用c++和Eigen选择矢量的一部分

Select a part of a vector with C++ and Eigen

本文关键字:一部分 选择 c++ Eigen      更新时间:2023-10-16

我想在c++中选择一个向量的一部分与库Eigen?

我的意思是如果我有这个向量:
VectorXd v(6);
v << 1, 2, 3, 8, 1, 2;

是否存在返回这个向量的函数:

a << 2, 8, 2;

?

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

没有任何函数可以完成这种超级特定的事情。如果有的话,它可能是在特征块操作下。最好的办法是自己写函数。类似这样:

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);

注意:这本质上是伪代码,因此没有错误检查等。