rng
控制随机数生成器
说明
rng("default")
使用默认算法和种子初始化 MATLAB® 随机数生成器。出厂默认设置是种子为 0 的梅森旋转生成器。有关更改默认设置和可再现性的信息,请参阅随机数生成器的默认设置和随机数生成器的可再现性。
rng
函数控制全局流,这决定 rand
、randi
、randn
和 randperm
函数如何产生一系列随机数。要创建一个或多个独立于全局流的流,请参阅 RandStream
和 RandStream.create
。
示例
输入参数
详细信息
提示
当您执行并行处理时,为了数据流的独立性,不要使用
rng("shuffle")
在不同工作进程上设置随机数流,因为它根据当前时间设置随机数生成器的种子。当命令同时发送到多个工作进程时(例如在parfor
作业中),函数rng
使用相同的种子。要实现工作进程上的独立流,请使用默认行为或考虑使用RandStream
在每个工作进程上使用唯一子流。执行并行处理时,MATLAB 客户端和 MATLAB 工作进程上的默认随机数生成器不同。默认情况下,MATLAB 客户端使用种子为 0 的梅森旋转生成器,而 MATLAB 工作进程使用种子为 0 且执行 20 轮的 Threefry 4×64 生成器。在 MATLAB 预设项中更改默认生成器设置只会影响客户端的默认行为,不会影响并行工作进程的默认行为。如果需要在客户端和工作进程上生成相同的随机数流,可以使用
rng
以及相同的生成器算法和种子(或者考虑使用RandStream
以及相同的生成器算法、种子和正态变换算法)。有关详细信息,请参阅Control Random Number Streams on Workers (Parallel Computing Toolbox)。要将
rng
(代替rand
或randn
函数)与"seed"
、"state"
或"twister"
输入结合使用,请参阅更换不推荐的 rand 和 randn 语法。