2

我正在尝试RandStream在 MATLAB 7.6.0.324 中使用如下:

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

显然,RandStream没有在 MATLAB 7.6.0.324 上定义,我找不到关于它的文档。

如何在此版本的 Matlab 中设置随机种子,然后randrandperm.

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 语法,原因如下:

  • 术语“种子”和“状态”是生成器的误导性名称。
  • 除了“twister”之外,所有以前的发电机都有缺陷。
  • 他们不必要地为 rand 和 randn 使用不同的生成器。
于 2011-05-31T22:52:23.477 回答
0

您显然使用的是尚未定义功能的旧版本

试试qrandstream

于 2011-05-31T22:52:58.333 回答