2016-05-24 21 views
0

Matlabでは、rng('default');を使用して乱数ジェネレータを初期化できます。Matlabの乱数ジェネレータの初期化

これは、現在の機能またはセッション全体でのみ保持されますか?

第2に、特定の関数で乱数ジェネレータを初期化したいだけです。その特定の機能の前後に、初期化されていない乱数発生器を使用する必要があります。これはどうすればできますか?

編集:その他の問題があります。内部的に乱数を使用するcvpartition関数を使用したいが、関数にRandStreamオブジェクトを渡すことはできない。 cvpartition関数に初期化された乱数ジェネレータを使用するにはどうすればよいですか?

+2

ダニエルはあなたの2番目の質問に答えました。最初の質問に関しては、 'rng'は言及したようにグローバルな状態を使用します。これは、' rng'を使う場所、コマンドプロンプトで関数や外部にある場合は、ある種子で呼び出すと、セッション全体で使用されます。さらに 'rand *'関数を呼び出すと、それらの関数がどこで呼び出されるか(すなわち、ローカル関数、コマンドプロンプトなど)にかかわらず、その種を使用します。 – rayryeng

答えて

3

オブジェクト代わりにRandStreamオブジェクトを使用すると、使用する関数ごとに1つのオブジェクトを作成するなど、必要なものを選択することができます。

rngは常にグローバルな状態を使用します。

+0

追加の問題があります。内部的に乱数を使用するcvpartition関数を使用したいが、関数にRandStreamオブジェクトを渡すことはできない。 cvpartition関数に初期化された乱数ジェネレータを使用するにはどうすればよいですか? – machinery

関連する問題