RandStream
以下のように、MATLAB 7.6.0.324 で使用しようとしています。
randst = RandStream('mrg32k3a', 'Seed', 0);
どうやら、RandStream
MATLAB 7.6.0.324 では定義されておらず、それに関するドキュメントが見つかりません。
rand
このバージョンのMatlabでランダムシードを設定するにはどうすればよいですかrandperm
?
ほとんどの場合、新しいバージョンの MATLAB を使用しているユーザーからコードを入手しています。このRandStream
関数は MATLAB のそれ以降のバージョン (どのバージョンかは覚えていません) で導入されましたが、v7.6.0.324 には存在しません。rand
古いバージョンでは、次のようにシードを設定するだけです。
rand('seed',0);
x=rand(1,5)
x =
0.2190 0.0470 0.6789 0.6793 0.9347
randperm
一方、そのrand
中で呼び出します。rand
したがって、呼び出す前にシードを設定するrandperm
と、毎回同じ出力が得られます。
rand('seed',0);
y=randperm(5)
y =
2 1 3 4 5
この構文は現在推奨されていません (また、将来のリリースではサポートが中止される可能性があります)。ドキュメントから:
これらの rand および randn 構文は、次の理由で推奨されなくなりました。
- 「シード」および「状態」という用語は、ジェネレーターの誤解を招く名前です。
- 「ツイスター」を除く以前のジェネレーターにはすべて欠陥があります。
- rand と randn に異なるジェネレーターを不必要に使用します。
関数がまだ定義されていない古いバージョンを使用していることは明らかです
qrandstreamを試す