问题描述
|
我正在尝试在MATLAB 7.6.0.324中使用ѭ0,如下所示:
randst = RandStream(\'mrg32k3a\',\'Seed\',0);
显然,在MATLAB 7.6.0.324上未定义“ 0”,我找不到有关它的文档。
如何在此版本的Matlab中为set3ѭ和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
在里面叫calls3ѭ。因此,在调用randperm
之前为rand
设置种子将为您提供每次相同的输出。
rand(\'seed\',0);
y=randperm(5)
y =
2 1 3 4 5
注意:
当前不建议使用此语法(在将来的版本中可能会停止支持)。从文档中:
这些rand和randn语法不是
推荐以下更长的时间
原因:
术语“种子”和“状态”是生成器的误导性名称。
除“ twister”外,所有以前的生成器都有缺陷。
他们不必要为rand和randn使用不同的生成器。
, 您显然使用的是旧版本,该函数尚未定义
尝试qrandstream