【发布时间】:2016-08-09 22:38:27
【问题描述】:
我想使用库 Eigen 在 C++ 中选择向量的一部分?
我的意思是如果我有这个向量:
VectorXd v(6);
v << 1, 2, 3, 8, 1, 2;
有没有返回这个向量的函数:
a << 2, 8, 2;
?
因为我知道如何只选择向量的一部分,但只能选择一个而不是两个的步长。
【问题讨论】:
标签: c++ c++11 c++14 eigen eigen3
我想使用库 Eigen 在 C++ 中选择向量的一部分?
我的意思是如果我有这个向量:
VectorXd v(6);
v << 1, 2, 3, 8, 1, 2;
有没有返回这个向量的函数:
a << 2, 8, 2;
?
因为我知道如何只选择向量的一部分,但只能选择一个而不是两个的步长。
【问题讨论】:
标签: c++ c++11 c++14 eigen eigen3
没有功能可以做这个超级具体的事情。如果是这样,它可能会在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);
注意:这本质上是伪代码,因此没有错误检查等。它也未经测试。
【讨论】: