文档

生成不同的随机数

这个例子展示了如何避免在MATLAB中重复相同的随机数数组®将重新启动。当您想要组合来自执行不同MATLAB会话的相同随机数命令的结果时,这种技术非常有用。

所有的随机数函数,兰德randn兰迪,randperm,从共享随机数生成器中提取值。每次你启动MATLAB,生成器重置自己到相同的状态。因此,像这样的命令兰特(2,2)在启动后立即执行它时,返回相同的结果。此外,任何调用随机数函数的脚本或函数在重新启动时都返回相同的结果。

获得不同随机数的一种方法是每次使用不同的种子初始化生成器。这样做可以确保您不会重复上一个会话的结果。

执行rng(“洗牌”)在调用任何随机数函数之前,在您的MATLAB会话中执行一次。

rng (“洗牌”

您可以在MATLAB命令窗口中执行此命令,也可以将其添加到启动文件中,启动文件是MATLAB每次重新启动时执行的一个特殊脚本。

现在,执行一个随机数命令。

A = rand(2,2);

每次你打来电话rng(“洗牌”),它根据当前时间使用不同的种子重新为生成器播下种子。

或者,显式指定不同的种子。例如,

rng (1);A = rand(2,2);rng (2);B = rand(2,2);

数组一个而且B是不同的,因为在每次调用兰德函数。

请注意

频繁地重新播种生成器并不会改善输出的统计特性,也不会使输出在任何实际意义上更随机。当您重新启动MATLAB或在运行涉及随机数的大型计算之前,重新播种可能是有用的。但是,在会话中过于频繁地重新播种生成器不是一个好主意,因为随机数的统计属性可能会受到不利影响。

另请参阅

相关的话题