| 查看: 319 | 回复: 3 | |||
| 当前主题已经存档。 | |||
[交流]
matlab 产生均匀随机数
|
|||
| 要用matlab产生一组0到1之间的均匀随机数。要求随机数是以计算机当前的时间作为种子的。如何实现?请各位指点,谢谢! |
» 猜你喜欢
计算机、0854电子信息(085401-058412)调剂
已经有5人回复
国自然申请面上模板最新2026版出了吗?
已经有13人回复
基金委咋了?2026年的指南还没有出来?
已经有3人回复
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
推荐一本书
已经有12人回复
基金申报
已经有4人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
有没有人能给点建议
已经有5人回复
safiml
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 714.8
- 散金: 10
- 帖子: 133
- 在线: 5.9小时
- 虫号: 590602
- 注册: 2008-09-01
- 专业: 信息处理方法与技术
★ ★ ★ ★ ★ ★
luckid913(金币+6,VIP+0):3Q for your help!! 7-10 18:54
luckid913(金币+6,VIP+0):3Q for your help!! 7-10 18:54
|
转自http://hi.baidu.com/yilinghl/blo ... 8c4bfa3c7a18326acb8 从这儿看到的,rand()这个函数就是产生0~1的均匀分布的随机数,关键是以机器时间为种子,据这里说是rand()中引入clock参数即可,你看看吧 我贴一下吧: rand产生的是0到1(不包括1)的随机数. matlab的rand函数生的是伪随机数,即由种子递推出来的,相同的种子,生成相同的随机数. matlab刚运行起来时,种子都为初始值,因此每次第一次执行rand得到的随机数都是相同的. 1.多次运行,生成相同的随机数方法: 用rand('state',S)设定种子 S为35阶向量,最简单的设为0就好 例: rand('state',0);rand(10) 2. 任何生成相同的随机数方法: 试着产生和时间相关的随机数,种子与当前时间有关. rand('state',sum(100*clock)) 即: rand('state',sum(100*clock)) ;rand(10) 只要执行rand('state',sum(100*clock)) ;的当前计算机时间不现,生成的随机值就不现. 也就是如果时间相同,生成的随机数还是会相同. 在你计算机速度足够快的情况下,试运行一下: rand('state',sum(100*clock));A=rand(5,5);rand('state',sum(100*clock));B=rand(5,5); A和B是相同. 所以建议再增加一个随机变量,变成: rand('state',sum(100*clock)*rand(1)); % 据说matlab 的rand 函数还存在其它的根本性的问题,似乎是非随机性问题. 没具体研究及讨论,验证过,不感多言. 有兴趣的可以查阅: <> Petr Savicky Institute of Computer Science Academy of Sciences of CR Czech Republic savicky@cs.cas.cz September 16, 2006 Abstract The default random number generator in Matlab versions between 5 and at least 7.3 (R2006b) has a strong dependence between the numbers zi+1, zi+16, zi+28 in the generated sequence. In particular, there is no index i such that the inequalities zi+1 < 1/4, 1/4 zi+16 < 1/2, and 1/2 zi+28 are satisfied simultaneously. This fact is proved as a consequence of the recurrence relation defining the generator. A random sequence satisfies the inequalities with probability 1/32. Another example demonstrating the dependence is a simple function f with values −1 and 1, such that the correlation between f(zi+1, zi+16) and sign(zi+28 − 1/2) is at least 0.416, while it should be zero. A simple distribution on three variables that closely approximates the joint distribution of zi+1, zi+16, zi+28 is described. The region of zero density in the approximating distribution has volume 4/21 in the three dimensional unit cube. For every integer 1 k 10, there is a parallelepiped with edges 1/2k+1, 1/2k and 1/2k+1, where the density of the distribution is 2k. Numerical simulation confirms that the distribution of the original generator matches the approximation within small random error corresponding to the sample size. [ Last edited by safiml on 2009-7-10 at 16:41 ] |
2楼2009-07-10 16:37:06
![]() ![]() |
3楼2009-07-10 16:38:24
wxq_
金虫 (著名写手)
额的金币啊
- 应助: 0 (幼儿园)
- 金币: 492.3
- 散金: 75
- 帖子: 1635
- 在线: 5.8小时
- 虫号: 796566
- 注册: 2009-06-18
- 性别: GG
- 专业: 环境化工
4楼2009-07-10 17:12:27











回复此楼
