rng
난수 생성기 제어
설명
rng("default")
는 디폴트 알고리즘과 시드값을 사용하여 MATLAB® 난수 생성기를 초기화합니다. 공장 초기값은 시드값이 0인 메르센 트위스터 생성기입니다. 디폴트 설정을 변경하는 방법과 재현성에 대한 자세한 내용은 난수 생성기의 디폴트 설정 및 난수 생성기의 재현성 항목을 참조하십시오.
rng
함수는 전역 스트림을 제어하여 rand
, randi
, randn
, randperm
함수가 난수열을 생성하는 방법을 결정합니다. 전역 스트림과 별도로 하나 이상의 독립 스트림을 만들려면 RandStream
및 RandStream.create
를 참조하십시오.
rng(
는 현재의 생성기 알고리즘을 사용하여 난수 생성기의 시드값을 지정합니다.seed
)
이 시드값을 사용하여 난수 생성기를 초기화하려면
seed
를 음이 아닌 정수(예:rng(1)
)로 지정합니다.현재 시간을 기준으로 생성기 시드값을 초기화하려면
seed
를"shuffle"
로 지정합니다.
rng(
는 시드값 0을 사용하여 난수 생성기가 사용할 알고리즘을 지정합니다. 이 구문은 generator
)rng(0,generator)
와 동일합니다. (R2023b 이후)
rng(
는 s
)Type
, Seed
및 State
필드가 있는 구조체 s
에 포함된 설정을 기반으로 생성기를 초기화합니다. 구조체 s
는 이전 s = rng
또는 s = rng(__)
호출에서 반환된 구조체여야 합니다.
는 t
= rngType
, Seed
및 State
필드가 있는 구조체 t
에 현재의 난수 생성기 설정을 반환합니다.
는 구조체 t
= rng(___)t
에 현재의 난수 생성기 설정을 반환한 후, 지정한 인수를 사용하여 설정을 변경합니다. 위에 열거된 구문에 나와 있는 입력 인수를 조합하여 출력 인수를 지정할 수 있습니다.
예제
입력 인수
세부 정보
팁
병렬 처리 시
rng("shuffle")
은 현재 시간을 기준으로 난수 생성기의 시드값을 지정하므로 독립 스트림을 보장하기 위해서는 다른 워커에서 난수 스트림을 설정하지 마십시오.parfor
함수는rng
작업 내부와 같이 동시에 여러 워커에게 명령을 보낼 경우 동일한 시드값을 사용합니다. 워커에 있는 여러 독립 스트림의 경우 디폴트 동작을 사용하거나RandStream
을 통해 각 워커에 고유한 서브스트림을 사용하는 것이 좋습니다.병렬 처리 시 MATLAB 클라이언트와 MATLAB 워커의 디폴트 난수 생성기가 다릅니다. 기본적으로 MATLAB 클라이언트는 메르센 트위스터 생성기와 시드값 0을 사용하고, MATLAB 워커는 20회 라운드의 Threefry 4x64 생성기와 시드값 0을 사용합니다. MATLAB 기본 설정에서 디폴트 생성기 설정을 변경하면 클라이언트의 디폴트 동작만 영향을 받으며 병렬 워커의 디폴트 동작은 영향을 받지 않습니다. 클라이언트와 워커에서 동일한 난수 스트림을 생성해야 하는 경우 동일한 생성기 알고리즘과 시드값으로
rng
를 사용할 수 있습니다(또는 동일한 생성기 알고리즘, 시드값, 정규 변환 알고리즘으로RandStream
을 사용할 수 있음). 자세한 내용은 Control Random Number Streams on Workers (Parallel Computing Toolbox) 항목을 참조하십시오.rand
또는randn
함수 대신rng
에"seed"
,"state"
또는"twister"
입력값을 사용하려면 권장되지 않는 rand 구문과 randn 구문 대체하기 항목을 참조하십시오.