2

RandStream以下のように、MATLAB 7.6.0.324 で使用しようとしています。

randst = RandStream('mrg32k3a', 'Seed', 0);

どうやら、RandStreamMATLAB 7.6.0.324 では定義されておらず、それに関するドキュメントが見つかりません。

randこのバージョンのMatlabでランダムシードを設定するにはどうすればよいですかrandperm?

4

2 に答える 2

1

ほとんどの場合、新しいバージョンの 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 に異なるジェネレーターを不必要に使用します。
于 2011-05-31T22:52:23.477 に答える
0

関数がまだ定義されていない古いバージョンを使用していることは明らかです

qrandstreamを試す

于 2011-05-31T22:52:58.333 に答える