我有兴趣使用来自另一个Eigen::VectorXd
向量的值初始化Eigen::VectorXd
向量,基于vector<int>
索引,这些索引将指出将使用哪些确切元素。
即,
// This is the large vector from which I'll take the values to
// initialize the second, shorter one
int N = 100;
Eigen::VectorXd V(N);
V.setRandom(N);
// This is the vector of indexes that'll be used to specify
// which elements of V will be used in the initialization of x
vector<int> ids = {1, 3, 0, 20};
// This is the vector I want to initialize
Eigen::VectorXd x(ids.size());
现在,我想要的x
如下:
x(0)= V(1)
x(1)= V(3)
x(2)= V(0)
x(4)= V(20)
非常感谢!
答案 0 :(得分:3)
在devel分支(将变为3.4)中,您可以执行以下操作:
x = V(ids);
使用Eigen 3.3,你必须编写自己的for循环。