2014-01-22 3 views
4

방금 ​​Eigen으로 주위를 놀았고 MatrixXf :: Random (3,3)이 항상 동일한 행렬을 반환한다는 것을 알았습니다. 첫 번째 것은 항상 예입니다.
0.680375 0.59688 - 0.329554
-0.211234 0.823295 0.536459
0.566198 -0.604897 -0.444451MatrixXf :: Random 항상 같은 행렬을 반환합니다.

행동 의도 또는 난 그냥 정말 간단 뭔가를 감독하고인가요?

for(int i = 0; i < 5; i++) { 
     MatrixXf A = MatrixXf::Random(3, 3); 
     cout << A <<endl; 
} 

답변

12

예, 의도 된 행동입니다 : 내가 사용

코드 (수학 라이브러리와 내 경험이 제로에 가깝습니다). 매트릭스 : 랜덤은, 예를 들면부터 srand (서명 INT 씨)와 수열을 초기화 할 수 있도록, 표준 라이브러리의 난수 생성기를 사용

srand((unsigned int) time(0)); 
+0

아, 감사합니다. – wlfbck

+1

설명서로 작성 했습니까? 못 찾겠 어. –

2

@orian :

표준 : srand (unsigned seed)는 Eigen 함수가 아닙니다. 전체 코드는 다음과 같이 작동해야합니다.

for(int i = 0; i < 5; i++) { 
    std::srand((unsigned int) time(0)); 
    MatrixXf A = MatrixXf::Random(3, 3); 
    cout << A <<endl; 
} 
관련 문제