randn
의사 난수 생성기를 사용하는 경우 몇 가지 테스트를 수행해야합니다. 어떻게하면 시드를 직접 설정할 수 있습니까?이 테스트를 실행할 때마다 동일한 결과가 나타납니다. (예, 좀 이상하게 들리지만 그게 문제입니다).의사 난수 생성기에 대한 사용자 지정 시드를 설정하는 방법
seed
속성을 가진 RANDSTREAM
개체를 찾았지만 읽기 전용입니다. 발전기를 시딩 할 때 사용할 수있는 방법이 있습니까?
randn
의사 난수 생성기를 사용하는 경우 몇 가지 테스트를 수행해야합니다. 어떻게하면 시드를 직접 설정할 수 있습니까?이 테스트를 실행할 때마다 동일한 결과가 나타납니다. (예, 좀 이상하게 들리지만 그게 문제입니다).의사 난수 생성기에 대한 사용자 지정 시드를 설정하는 방법
seed
속성을 가진 RANDSTREAM
개체를 찾았지만 읽기 전용입니다. 발전기를 시딩 할 때 사용할 수있는 방법이 있습니까?
그 일의 옛날 방식 :
randn('seed',0)
새로운 방법 : 당신이 rand
및 randn
주 같은 스트림 새로운 방법을 사용하는 경우
s = RandStream('mcg16807','Seed',0)
RandStream.setDefaultStream(s)
참고 호출하는 경우 그래서 둘 다 이전 방법 (별도의 생성기가 있음)에 비해 다른 숫자가 생성 될 수 있습니다. 이 방법 (및 레거시 코드)에서는 이전 방법이 계속 지원됩니다.
자세한 내용은 http://www.mathworks.com/help/techdoc/math/bsn94u0-1.html을 참조하십시오.
rng(mySeed)
을 호출하여 전역 스트림 (Matlab R2011b에서 테스트 됨)의 시드를 설정할 수 있습니다. 이는 rand
, randn
및 randi
기능에 영향을줍니다.
same page that James linked to은 여러 가지 오래된 방법 (표의 오른쪽 열의 가운데 셀 참조) 대신 권장되는 방법으로이 목록을 나열합니다.
format long; % Display numbers with full precision format compact; % Get rid of blank lines between output mySeed = 10; rng(mySeed); % Set the seed disp(rand([1,3])); disp(randi(10,[1,10])); disp(randn([1,3])); disp(' '); rng(mySeed); % Set the seed again to duplicate the results disp(rand([1,3])); disp(randi(10,[1,10])); disp(randn([1,3]));
출력은 다음과 같습니다 : 당신은 단지 몇 가지 알려진 상태로 RNG를 재설정 할 때
0.771320643266746 0.020751949359402 0.633648234926275 8 5 3 2 8 2 1 7 10 1 0.060379730526407 0.622213879877005 0.109700311365407 0.771320643266746 0.020751949359402 0.633648234926275 8 5 3 2 8 2 1 7 10 1 0.060379730526407 0.622213879877005 0.109700311365407
mySeed=57; % an integer number
rng(mySeed,'twister') %You can replace 'twister' with other generators
Thx. 이것을 투표하십시오! –
, 그냥 사용
seed = 0;
randn('state', seed);
rand ('state', seed);
A = round(10*(rand(1,5))); // always will be [10 2 6 5 9]
여기
몇 가지 예제 코드입니다
아니요, 이상하지 않습니다. 테스트와 디버깅을 위해서는 실제로 상당히 중요합니다. – Jonas
@Jonas, 그래, 특히 결과의 반복성에 관해서라면 ... – Gacek
반대의 경우 즉, Matlab을 다시 시작할 때마다 반복성을 피하기 위해 명령은 ['rng ('shuffle')'] (http://mathworks.com/help/matlab/ref/rng.html). 현재 시간을 기준으로 시드를 설정합니다. –