ドキュメンテーション

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

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

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

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

rng('shuffle');
その後で、randrandnrandirandperm などの関数を呼び出します。このコマンドを使用することで、以前の 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) の出力と一致します。

参考

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