查看完整版本 : [求助]菜鸟求助--rand()问题
GoldSpear
2008-10-04, 11:25
发现用rand()产生的伪随机数太有规律了
每次500点的 dla分形都能做出一模一样的图来。。。:sweat:
请问下有没有办法在Matlab中产生与机器时间关联的随机数,即种子每次不同
大谢~~~
meteora1005
2008-10-04, 12:01
rand是0-1间的均匀分布的生成函数,还有其它分布的生成函数,你自己看一下。
GoldSpear
2008-10-04, 13:32
re ls
:
我的问题不在于随机数的分布
而是如何改变产生伪随机数的种子,用rand()的话,每次初始运行Matlab时dla做出的图都一样,因为rand()总是从相同的种子开始产生,比如:第一个总是0.9501,第二个总是0.2311,以此类推。。。
这个对monte carlo的结果会有一定的影响
当然一种办法是多重套用随机数产生命令,从而每次获得不同的初始值,但这个办法依然很局限
C中的解决办法很简单,即用即时的机器时间作为种子,这样保证了更高的随机性
所以我的问题是matlab中有没有类似的办法
fanxing39
2008-10-05, 02:01
好问题!:tongue:
rand('seed',second(now)) %先由当前时间秒数产生种子
rand() %这里就可以用rand()产生随机数了
%为了得到不相同的结果,当然也可以和hour()和minate()一同使用,以保证种子在很大范围内不同
GoldSpear
2008-10-05, 15:40
谢ls,和lss,呵呵
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.