Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-04, 11:25   #1
GoldSpear
初级会员
 
注册日期: 2008-07-11
年龄: 37
帖子: 10
声望力: 17
GoldSpear 正向着好的方向发展
默认 [求助]菜鸟求助--rand()问题

发现用rand()产生的伪随机数太有规律了
每次500点的 dla分形都能做出一模一样的图来。。。:sweat:

请问下有没有办法在Matlab中产生与机器时间关联的随机数,即种子每次不同

大谢~~~
GoldSpear 当前离线   回复时引用此帖
旧 2008-10-04, 12:01   #2
meteora1005
高级会员
 
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19
meteora1005 正向着好的方向发展
默认 回复: [求助]菜鸟求助--rand()问题

rand是0-1间的均匀分布的生成函数,还有其它分布的生成函数,你自己看一下。
上传的附件
文件类型: doc 分布.doc (37.0 KB, 11 次查看)
meteora1005 当前离线   回复时引用此帖
旧 2008-10-04, 13:32   #3
GoldSpear
初级会员
 
注册日期: 2008-07-11
年龄: 37
帖子: 10
声望力: 17
GoldSpear 正向着好的方向发展
默认 回复: [求助]菜鸟求助--rand()问题

re ls

我的问题不在于随机数的分布
而是如何改变产生伪随机数的种子,用rand()的话,每次初始运行Matlab时dla做出的图都一样,因为rand()总是从相同的种子开始产生,比如:第一个总是0.9501,第二个总是0.2311,以此类推。。。
这个对monte carlo的结果会有一定的影响

当然一种办法是多重套用随机数产生命令,从而每次获得不同的初始值,但这个办法依然很局限

C中的解决办法很简单,即用即时的机器时间作为种子,这样保证了更高的随机性

所以我的问题是matlab中有没有类似的办法
GoldSpear 当前离线   回复时引用此帖
旧 2008-10-05, 02:01   #4
fanxing39
高级会员
 
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31
fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星fanxing39 是一位成功的新星
默认 回复: [求助]菜鸟求助--rand()问题

好问题!:tongue:
fanxing39 当前离线   回复时引用此帖
旧 2008-10-05, 10:55   #5
FFirX
初级会员
 
注册日期: 2008-10-04
年龄: 35
帖子: 2
声望力: 0
FFirX 正向着好的方向发展
默认 回复: [求助]菜鸟求助--rand()问题

rand('seed',second(now)) %先由当前时间秒数产生种子
rand() %这里就可以用rand()产生随机数了
%为了得到不相同的结果,当然也可以和hour()和minate()一同使用,以保证种子在很大范围内不同
FFirX 当前离线   回复时引用此帖
旧 2008-10-05, 15:40   #6
GoldSpear
初级会员
 
注册日期: 2008-07-11
年龄: 37
帖子: 10
声望力: 17
GoldSpear 正向着好的方向发展
默认 回复: [求助]菜鸟求助--rand()问题

谢ls,和lss,呵呵
GoldSpear 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.