2016-07-13 3 views
0

Eigen::VectorXd에 가중치 세트가 있고이 값을 사용하여 인덱스 범위에서 샘플을 그리려는 경우 가능성이 있습니다. weightsstd::vector 인 경우 나는이 작업을 수행 할 수 있습니다고유 벡터의 가중치를 사용하는 불연속 분포의 샘플

std::random_device rd; 
std::mt19937 rng(rd()); 
std::discrete_distribution<int> dist(weights.begin(), weights.end()); 
int val = dist(rng); 

Eigen::VectorXdweights을 때이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 벡터를 복사하지 않고 샘플러를 직접 작성하지 않고도 할 수 있습니까?

답변

1

당신이 바로 복사 Eigen::VectorXd

std::discrete_distribution<int> dist(weights.data(), weights.data()+weights.size()); 
+0

이 데이터 발생하지 않습니다에 대한 포인터를 사용할 수 있을까? – Flash

+0

어느 데이터입니까? 무게? 아니. – kangshiyin