Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

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

所有随机数函数(randrandnrandirandperm)均可从共享随机数生成器中抽取值。每次启动 MATLAB® 时,生成器均复位到相同的状态。因此,当启动后立即执行计算的任何时候,类似 rand(2,2) 的命令均返回相同的结果。此外,无论何时重新启动,任何调用随机数函数的脚本或函数均返回相同的结果。

如果希望在重启 MATLAB 时避免重复相同的随机数数组,必须先执行以下命令:

rng('shuffle');
然后再调用 randrandnrandirandperm。此命令可确保不会重复 MATLAB 以前会话的结果。

如果想在不重启 MATLAB 会话的情况下重复该会话开始时获得的结果,可随时使用以下命令将生成器重置为启动状态:

rng('default');
在执行 rng('default') 时,后续的随机数命令将返回与新的 MATLAB 会话输出相匹配的结果。例如,
rng('default');
A = rand(2,2)
A =

    0.8147    0.1270
    0.9058    0.9134
无论何时重启 MATLAB 时,A 中的值始终与 rand(2,2) 的输出相匹配。

另请参阅