所有随机数函数 r a n d 、 r a n d n 、 r a n d i 、 r a n d p e r m rand、randn、randi、randperm rand、randn、randi、randperm均可从共享随机数生成器中抽取值。每次启动 M a t l a b Matlab Matlab时,生成器均复位到相同的状态。因此,当启动后立即执行计算的任何时候,类似 r a n d ( 1 , 2 ) rand(1,2) rand(1,2)的命令均返回相同的结果。此外,无论何时重新启动,任何调用随机数函数的脚本或函数均返回相同的结果。
如果希望在重启 M a t l a b Matlab Matlab时避免重复相同的随机数数组,必须先执行以下命令:
rng('shuffle');
然后再调用 r a n d 、 r a n d n 、 r a n d i 、 r a n d p e r m 。 rand、randn、randi、randperm。 rand、randn、randi、randperm。此命令可确保不会重复 MATLAB 以前会话的结果。
如果想在不重启 M a t l a b Matlab Matlab会话的情况下重复该会话开始时获得的结果,可随时使用以下命令将生成器重置为启动状态:
rng('default');
在执行rng('default')
时,后续的随机数命令将返回与新的
M
a
t
l
a
b
Matlab
Matlab会话输出相匹配的结果。例如:
rng('default');
A = rand(1,2)
A =
0.8147 0.9058
无论何时重启 M a t l a b Matlab Matlab时,A 中的值始终与 r a n d ( 1 , 2 ) rand(1,2) rand(1,2)的输出相匹配。