ドキュメンテーション

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

起動後に乱数が繰り返される理由

乱数関数 randrandnrandirandperm はすべて、共有の乱数発生器から値を取得します。MATLAB® を起動するたびに、乱数発生器は同じ状態にリセットされます。このため、rand(2,2) のようなコマンドを起動直後に実行すると、いつでも同じ結果が返されます。また、乱数関数を呼び出すスクリプトや関数はいずれも、再起動後には同じ結果を返します。

MATLAB の再起動に際して同じ乱数配列が繰り返されないようにする場合は、次のコマンドを実行します。

rng('shuffle');
前の MATLAB セッションと同じ結果が繰り返されないように、このコマンドを実行してから、randrandnrandi または randperm を呼び出します。

また、MATLAB セッションの開始時と同じ結果を繰り返す必要があるが再起動は望ましくないという状況もあります。MATLAB セッション中はいつでも、乱数発生器を起動時の状態にリセットできます。

rng('default');
rng('default') を実行した場合、その後の乱数コマンドは新規の MATLAB セッションの出力と同じ結果を返します。たとえば、
rng('default');
A = rand(2,2)
A =

    0.8147    0.1270
    0.9058    0.9134
A の値は、MATLAB を再起動したときの rand(2,2) の出力と一致します。

参考

この情報は役に立ちましたか?