在MATLAB 7.6.0.324中未定义\'RandStream\'吗?

问题描述

| 我正在尝试在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