2017-01-26 4 views
0

Eigen::VectorXd 벡터를 다른 Eigen::VectorXd 벡터의 값으로 초기화하는 데 관심이 있습니다. 정확히 어떤 요소가 사용될 것인지를 가리키는 인덱스의 vector<int>을 기반으로합니다. 나는 x이 원하는 무엇인덱스의`벡터 <int> '을 기반으로하는 다른`Eigen :: VectorXd` 벡터의 값을 사용하여`Eigen :: VectorXd`를 초기화하는 방법

지금

// 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 (0) = V (1)

X (1) = V (3)

X (2) = V (0)

X (4) = V (20)

,

대단히 감사합니다! (STABLE) 지점에서

답변

3

(3.4가 될 것이다) 당신이 할 수 있습니다 : 아이겐 3.3

x = V(ids); 

, 당신은 루프에 대한 자신을 작성해야합니다.

+0

고마워요 :) Btw, 언제보실 수 있습니까? – nullgeppetto

+1

봄이 끝나기를 희망합시다 – ggael

+0

니스! 귀하의 답변 주셔서 감사합니다 :) – nullgeppetto