一个matlab中rand函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:00:11
matlab中rand这个函数能产生[0,1]之间的随机数,但matlab的这个随机性我似乎理解错了。我打开matlab,输入rand(3,3),产生一个结果;然后我把matlab整个关掉,再重新打开它,再次输入rand(3,3),两次输出的结果居然一样,实验了n次都一样。但是如果不关闭软件直接输入两次rand(3,3),则出来不同的结果。这个随机性到底是怎么回事?注:我使用的matlab6.5
有没有真正的产生随机数的办法。

这个是伪随机数,正如楼上所说,由种子递推出来,而种子在程序初始时候都一样。你可以试着产生和时间相关的随机数,这样就不会一样了

很显然楼主对随机数的生成并没有概念, 一组真正的随机数的生成的计算量已经远大于一个一般的个人电脑所能承受的水平(也有生成几个数的运算量较小的算法,不过生成个数受算法限制),二维随机数则几乎在On时间可返回随机数,高效快速,楼主的问题是如何生成不同的随机个体,那么在程序前加如下一句话无疑最为方便
rand('state',sum(100*clock))
这样就可以完成楼主所谓的随机了。

matlab的随机数算法是通过一个“种子”递推出来的, 种子在程序初始的时候都一样。