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

RandStream.create

난수 스트림 생성

클래스

RandStream

구문

[s1,s2,...] = RandStream.create('gentype','NumStreams',n)
s = RandStream.create('gentype')
[ ... ] = RandStream.create('gentype', Name, Value,...)

설명

[s1,s2,...] = RandStream.create('gentype','NumStreams',n)gentype으로 지정된 균일한 의사 난수 생성기 알고리즘을 사용하는 n개의 난수 스트림을 만듭니다. 스트림은 의사 난수라는 의미에서 독립적입니다 . 스트림은 의사 난수라는 의미에서 독립적입니다. 스트림은 다른 시점에 생성된 스트림에 대해 반드시 독립적일 필요는 없습니다. RandStream.listgentype에 대한 가능한 모든 값을 반환합니다. 생성기 알고리즘에 대한 자세한 내용은 난수 생성기 선택하기 항목을 참조하십시오.

참고

일부 생성기 유형은 다중 스트림을 지원하지 않습니다. 시차 피보나치 수열(Multiplicative Lagged Fibonacci) 생성기(mlfg6331_64) 또는 결합 다중 재귀적(Combined Multiple Recursive) 생성기(mrg32k3a)를 사용하여 다중 스트림을 만듭니다.

s = RandStream.create('gentype')은 단일 난수 스트림을 만듭니다. 단일 스트림을 만들 때에는 훨씬 간결한 대안인 RandStream 생성자를 사용하는 것이 좋습니다.

[ ... ] = RandStream.create('gentype', Name, Value,...)를 사용하면 Name, Value 쌍을 선택적으로 지정하여 스트림 생성을 제어할 수 있습니다. 파라미터는 다음과 같습니다.

NumStreams전체 세션 또는 랩에서 만들 이 유형의 스트림 총 개수입니다. 디폴트 값은 1입니다.
StreamIndices이 호출에서 만들어야 하는 스트림 인덱스입니다. 디폴트 값은 1:N입니다. 여기서 N'NumStreams' 파라미터와 함께 제공된 값입니다.
Seed모든 스트림을 초기화하는 데 사용되는 음이 아닌 정수 스칼라입니다. 디폴트 값은 0입니다. 시드는 0과 232 − 1 사이의 정수이거나 현재 시간을 기준으로 시드를 만드는 'shuffle'이어야 합니다.
NormalTransformrandn(S, ...)가 일반 의사 난수 값을 생성하는 데 사용하는 변환 알고리즘입니다. 옵션으로는 'Ziggurat', 'Polar' 또는 'Inversion'이 있습니다.
CellOutput스트림 객체를 셀형 배열의 요소로 반환할지 여부를 나타내는 논리형 플래그입니다. 디폴트 값은 false입니다.

일반적으로 RandStream.create를 한 번 호출하여 단일 통과 방식으로 여러 개의 독립 스트림을 만듭니다. 또는 RandStream.create를 독립적으로 호출하여 각 스트림을 만들 수 있지만 gentype, 'NumStreams', 'Seed''StreamIndices'에 대한 적절한 값을 지정하여 독립성을 보장해야 합니다.

  • 각 케이스에서 gentype, 'NumStreams''Seed'에 대해 동일한 값 세트를 지정합니다.

  • 'StreamIndices'에 대해, 각 케이스에서 1'NumStreams' 값 사이의 서로 다른 값을 지정합니다.

예제

3개의 독립 스트림을 만듭니다.

[s1,s2,s3] = RandStream.create('mrg32k3a','NumStreams',3);
r1 = rand(s1,100000,1); 
r2 = rand(s2,100000,1); 
r3 = rand(s3,100000,1);
corrcoef([r1,r2,r3])

3개의 독립 스트림 세트에서 1개의 스트림을 만들어 전역 스트림으로 지정합니다.

s2 = RandStream.create('mrg32k3a','NumStreams',3,'StreamIndices',2);
RandStream.setGlobalStream(s2);