文档

为什么随机数在启动后重复?

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

如果您想避免在MATLAB重新启动时重复相同的随机数数组,那么执行以下命令,

rng (“洗牌”);
在调用之前兰德randn兰迪,或randperm.此命令确保您不会重复来自前一个MATLAB会话的结果。

如果您想重复在MATLAB会话开始时得到的结果而不重新启动,您可以在任何时候使用

rng (“默认”);
当您执行rng(“违约”),随后的随机数命令返回与新MATLAB会话的输出相匹配的结果。例如,
rng (“默认”);兰德(2,2)=
A = 0.8147 0.1270 0.9058 0.9134
中的值一个的输出匹配兰特(2,2)每当你重新启动MATLAB。

另请参阅