rng
乱数発生器の制御
説明
rng("default")
は既定のアルゴリズムとシードを使用して MATLAB® 乱数発生器を初期化します。出荷時の既定の設定は、シードが 0 のメルセンヌ・ツイスター発生器です。既定の設定および再現性の変更の詳細については、乱数発生器の既定の設定および乱数発生器の再現性を参照してください。
関数 rng
は、関数 rand
、randi
、randn
および randperm
が乱数列を生成する方法を決定する "グローバル ストリーム" を制御します。グローバル ストリームから 1 つ以上の独立したストリームを作成するには、RandStream
および RandStream.create
を参照してください。
例
入力引数
詳細
ヒント
rng("shuffle")
は、現在の時刻に基づいて乱数発生器のシードを指定するため、これを使用して、並列処理の実行時に独立したストリームのために異なるワーカーに乱数ストリームを設定しないでください。parfor
ジョブの内部など、コマンドが複数のワーカーに同時に送信されている場合、関数rng
は同じシードを使用します。ワーカーでストリームが独立するようにするには、既定の動作を使用するか、RandStream
を使用して、各ワーカーで独自のサブストリームを使用することを検討してください。並列処理を実行する場合、MATLAB クライアントと MATLAB ワーカーで既定の乱数発生器が異なります。既定では、MATLAB クライアントはシード 0 でメルセンヌ・ツイスター発生器を使用し、MATLAB ワーカーはシード 0、20 ラウンドで Threefry 4x64 発生器を使用します。MATLAB の基本設定で既定の発生器の設定を変更した場合、クライアントの既定の動作のみが影響を受け、並列ワーカーの既定の動作は影響を受けません。クライアントとワーカーで同じ乱数ストリームを生成する必要がある場合は、発生器アルゴリズムとシードを同じにして
rng
を使用できます (あるいは、発生器アルゴリズム、シード、および正規変換アルゴリズムを同じにしてRandStream
を使用することを検討してください)。詳細については、ワーカー上の乱数ストリームの制御 (Parallel Computing Toolbox)を参照してください。"seed"
、"state"
または"twister"
入力をもつ関数rand
やrandn
ではなくrng
を使用するには、rand と randn の非推奨構文の置換を参照してください。