Matlab:RandStream函数 | 您所在的位置:网站首页 › matlab随机函数rand怎么用 › Matlab:RandStream函数 |
要生成一个随机数,RandStream对象的使用方法如下: ①通过设定种子和生成算法来确定一个伪随机序列,RandStream的构造函数或RandStream.creat方法可用来完成此任务。 ②使用RandStream.setDefaultStream函数将确定好的序列对象设置为当前Matlab使用的序列。 ③通过rand等函数将上面的随机序列生成随机数。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 当然,也可不用将其设置为默认序列(省②),使用rand函数可以指定从哪个序列中生成随机数: stream = RandStream('mrg32k3a'); rand(stream,1,5); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 使用RandStream.create函数可以创建独立同分布的随机序列,如 [ s1,s2,s3] = randStream.create('mrg32k3a',''); r1 = rand(s1,100000,1); r2 = rand(s2,100000,1); r3 = rand(s3,100000,1); corrcoef([r1 r2 r3]); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 要使得前后两次生成的随机数保持一样,可以将递归计算过程中的伪随机数状态记录下来,然后下一次计算总是基于这个记录的伪随机数状态来进行,这样每次计算得到的随机数总是相同的。 defaultStream = RandStream.getDefaultStream; savedState = defaultStream.State; v1 = rand(1,5) defaultStream.State = savedState; v2 = rand(1,5) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 各个指令具体的使用方法可以通过helpdesk命令,搜索RandStream来查看。v7.7以上版本为了保持与旧版本兼容,保留了如rand('state',0)这种伪随机序列设置方法,称之为legacy mode.有关legacy mode的内容也可以在RandStream项中找到。 |
CopyRight 2018-2019 实验室设备网 版权所有 |