이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

rng

난수 생성 제어

구문

rng(seed)
rng('shuffle')
rng(seed, generator)
rng('shuffle', generator)
rng('default')
scurr = rng
rng(s)
sprev = rng(...)

설명

참고

randrandn 대신 rng 함수를 'seed', 'state', 'twister' 입력값과 함께 사용하려면 권장되지 않는 rand 구문과 randn 구문 대체하기 항목의 도움말 문서를 참조하십시오.

rng(seed)rand, randi, randn이 예측 가능한 수열을 산출하도록 난수 생성기에 음수가 아닌 정수 seed로 시드값을 지정합니다.

rng('shuffle')은 현재 시간을 기반으로 난수 생성기에 시드값을 지정합니다. 따라서, 사용자가 rng를 호출할 때마다 rand, randi, randn은 다른 수열을 산출하게 됩니다.

rng(seed, generator)rng('shuffle', generator)rand, randi, randn이 사용하는 난수 생성기 유형을 추가적으로 지정합니다. generator 입력값은 다음 중 하나일 수 있습니다.

  • 'twister': 메르센 트위스터(Mersenne Twister)

  • 'simdTwister': SIMD 기반 고속 메르센 트위스터(SIMD-Oriented Fast Mersenne Twister)

  • 'combRecursive': 결합 다중 재귀적(Combined Multiple Recursive)

  • 'philox': 10회 라운드의 Philox 4x32 생성기

  • 'threefry': 20회 라운드의 Threefry 4x64 생성기

  • 'multFibonacci': 시차 피보나치 수열(Multiplicative Lagged Fibonacci)

  • 'v5uniform': 레거시 MATLAB® 5.0 균일 생성기

  • 'v5normal': 레거시 MATLAB 5.0 일반 생성기

  • 'v4': 레거시 MATLAB 4.0 생성기

rng('default')rand, randi, randn이 사용하는 난수 생성기 설정을 디폴트 값으로 지정합니다. 이 방법을 사용하면 MATLAB을 재시작한 경우와 같은 난수가 생성됩니다. 디폴트 설정은 시드값이 0인 메르센 트위스터(Mersenne Twister)입니다.

scurr = rngrand, randi, randn이 사용하는 난수 생성기의 현재 설정을 반환합니다. 설정은 필드 'Type', 'Seed', 'State'를 가진 구조체 scurr로 반환됩니다.

rng(s)rand, randi, randn이 사용하는 난수 생성기의 설정을 s = rng 같은 명령으로 이전에 캡처한 값으로 다시 복원합니다.

sprev = rng(...)는 설정을 변경하기 전에 rand, randi, randn이 사용하는 난수 생성기의 이전 설정을 반환합니다.

예제

예제 1 — 생성기 설정 검색과 복원

s에 현재 생성기 설정을 저장합니다.

s = rng;

rand를 호출하여 난수 값으로 구성된 벡터를 생성합니다.

x = rand(1,5)

x =

    0.8147    0.9058    0.1270    0.9134    0.6324

rng를 호출하여 원래 생성기 설정으로 복원합니다. 난수 값으로 구성된 새로운 세트를 생성하고 xy가 동일한지 확인합니다.

rng(s);
y = rand(1,5)

y =

    0.8147    0.9058    0.1270    0.9134    0.6324

예제 2 — 레거시 생성기의 설정 복원

레거시 생성기를 사용합니다.

sprev = rng(0,'v5uniform')

sprev = 
     Type: 'twister'
     Seed: 0
    State: [625x1 uint32]

x = rand

x =

    0.9501

rng를 호출하여 이전 설정을 복원합니다.

rng(sprev)

확장 기능