主要内容

rng

控制随机数发生器

描述

例子

rng (种子指定MATLAB的种子®随机数生成器。例如,rng (1)初始化梅森龙卷风发电机使用的种子1

rng功能控制全球流,这决定了兰德兰迪randn,randperm函数产生随机数序列。要创建一个或多个独立于全局流的流,请参见RandStreamRandStream.create

例子

rng (种子发电机还指定要使用的随机数生成器的类型。例如,rng (0, ' philox ')初始化Philox 4x32随机生成器的种子0

例子

s = rng返回结构中的当前随机数生成器设置年代

例子

全部折叠

将随机数生成器设置为默认种子(0)和算法(梅森龙卷风),然后保存发电机设置。

rng (“默认”) s = RNG
s =结构体字段:类型:'twister' Seed: 0状态:[625x1 uint32]

创建一个1乘5的行向量,其值为0到1之间的随机值。

x =兰德(1、5)
x =1×50.8147 0.9058 0.1270 0.9134 0.6324

改变生成器种子和算法,并创建一个新的随机行向量。

rng (1,“philox”) xnew = rand(1,5)
xnew =1×50.5361 0.2319 0.7753 0.2390 0.0036

现在恢复原来的生成器设置,并创建一个随机矢量。结果与原始行向量匹配x使用默认生成器创建。

Rng (s) xold = rand(1,5)
xold =1×50.8147 0.9058 0.1270 0.9134 0.6324

输入参数

全部折叠

生成器初始化,指定为下列选项之一。

价值 描述
0 用种子初始化生成器0
正整数 使用指定的正整数种子初始化生成器,例如1
“默认” 用种子初始化梅森龙卷风发电机0.这是每个MATLAB会话开始时的默认设置。
“洗牌” 基于当前时间初始化生成器,在每次调用后产生不同的随机数序列rng
结构 基于带字段的结构中包含的设置初始化生成器类型种子,状态

随机数算法,指定为表中的选项之一。有关生成器算法的更多信息,请参见创建和控制随机数流

价值 发电机的名字 发电机的关键字
“旋风” 梅森素数捻线机 mt19937ar
“simdTwister” 面向simd的快速梅森龙卷风 dsfmt19937
“combRecursive” 结合多个递归 mrg32k3a
“multFibonacci” 乘法滞后斐波那契 mlfg6331_64
“philox” Philox 4x32发电机,10发子弹 philox4x32_10
“threefry” 三联4x64发电机,20发子弹 threefry4x64_20

对于在MATLAB 4.0和5.0版本中使用的遗留生成器,请使用这些选项之一。

价值 发电机的名字 发电机的关键字
v4的 遗留MATLAB版本4.0生成器 mcg16807
“v5uniform” 遗留MATLAB版本5.0统一生成器 swb2712
“v5normal” 遗留MATLAB版本5.0普通发电机 shr3cong

提示

  • 当您执行并行处理时,不要使用rng(“洗牌”)在不同的worker上设置随机数流,以确保独立的流,因为它基于当前时间种子随机数生成器。当命令同时发送给多个worker时尤其如此,例如在parfor的工作。对于worker上的独立流,使用默认行为或考虑在每个worker上使用唯一的子流RandStream

  • 当执行并行处理时,MATLAB客户端和MATLAB工作者上的默认随机数生成器是不同的。如果您需要在客户端和工作人员上生成相同的随机数字流,您可以使用rng使用相同的生成器类型和种子(或考虑使用)RandStream使用相同的生成器类型、种子和常规转换算法)。有关更多信息,请参见控制工人上的随机数流(并行计算工具箱)

  • 使用rng而不是兰德randn功能与“种子”“状态”,或“旋风”输入,看到替换rand和randn的不鼓励语法

扩展功能

介绍了R2011a