最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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.list は、gentype の取り得る値をすべて返します。また、発生器アルゴリズムの詳細については、乱数発生器の選択を参照してください。

メモ

複数のストリームは、すべての発生器のタイプでサポートされません。乗法ラグ フィボナッチ発生器 (mlfg6331_64) または結合多重再帰発生器 (mrg32k3a) を使用して、複数のストリームを作成します。

s = RandStream.create('gentype') は、単一の乱数ストリームを作成します。RandStream コンストラクターは、単一のストリームを作成する必要がある場合の簡潔な代替手段です。

[ ... ] = RandStream.create('gentype', Name, Value,...) は、ストリームの作成を制御するためのオプションの名前と値の組み合わせを指定することが可能です。パラメーターは以下のとおりです。

NumStreamsセッションまたは lab 全体で作成されるこのタイプのストリームの総数。既定の設定は 1 です。
StreamIndicesこの呼び出しで作成される必要のあるストリーム インデックス。既定の設定は 1:N です。ここで N は、'NumStreams' パラメーターと共に与えられた値です。
Seedすべてのストリームを初期化する非負のスカラー整数。既定の設定は 0 です。Seed は 0 から 232 − 1 までの整数でなければなりません。または 'shuffle' で現在の時刻に基づいて Seed を作成します。
NormalTransform正規分布から疑似乱数値を生成するために、randn(S, ...) が使用する変換アルゴリズム。オプションは 'Ziggurat''Polar'、または 'Inversion' です。
CellOutputストリーム オブジェクトを cell 配列の要素として返すかどうかを示す論理フラグです。既定の設定は false です。

通常、RandStream.create を 1 回呼び出し、単一パスで複数の独立したストリームを作成します。または、RandStream.create を別々に呼び出して、各ストリームを作成できますが、gentype'NumStreams''Seed''StreamIndices' の適切な値を指定してこれらの独立性を確保しなければなりません。

  • 各ケースで gentype'NumStreams''Seed' に対して同じ値のセットを指定します。

  • 各ケースで 1'NumStreams' 値の間にある 'StreamIndices' に対して異なる値を指定しす。

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);