我正在尝试RandStream
在 MATLAB 7.6.0.324 中使用如下:
randst = RandStream('mrg32k3a', 'Seed', 0);
显然,RandStream
没有在 MATLAB 7.6.0.324 上定义,我找不到关于它的文档。
如何在此版本的 Matlab 中设置随机种子,然后rand
为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 语法,原因如下:
- 术语“种子”和“状态”是生成器的误导性名称。
- 除了“twister”之外,所有以前的发电机都有缺陷。
- 他们不必要地为 rand 和 randn 使用不同的生成器。
您显然使用的是尚未定义功能的旧版本