主要内容

RNG.

控制随机数发生器

描述

实例

RNG(种子)指定MATLAB的种子®随机数发生器。例如,rng(1)使用的种子初始化Mersenne捻线器生成器1..

这个RNG.函数控制全球流,这决定了兰德,兰迪,兰登, 和随机排列函数产生一系列随机数。要创建一个或多个独立于全局流的流,请参见兰德斯特朗RandStream.create.

实例

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

实例

s=rng在结构中返回当前随机数生成器设置s.

例子

全部崩溃

将随机数生成器设置为默认种子(0)和算法(Mersenne Twister),然后保存生成器设置。

RNG('默认')s=rng
S =带字段的结构:类型:“twister”种子:0状态:[625x1 uint32]

创建0到1之间随机值的1×5行向量。

x=兰特(1,5)
x=1×50.8147 0.9058 0.1270 0.9134 0.6324

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

rng(1,“菲洛克斯”)xnew=兰特(1,5)
xnew=1×50.5361 0.2319 0.7753 0.2390 0.0036

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

rng(s)xold=兰特(1,5)
xold=1×50.8147 0.9058 0.1270 0.9134 0.6324

输入参数

全部崩溃

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

价值 描述
0 用seed初始化生成器0.
正整数 使用指定的正整数种子初始化生成器,例如1..
'默认' 使用seed初始化Mersenne捻线器生成器0. 这是每个MATLAB会话开始时的默认设置。
“洗牌” 根据当前时间初始化生成器,从而在每次调用后生成不同的随机数序列RNG..
结构体 根据包含字段的结构中包含的设置初始化生成器类型,种子, 和状态.

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

价值 生成器名称 生成器关键字
“龙卷风” 随机数生成 mt19937ar
“simdTwister” SIMD型快速Mersenne Twister DSFMT19937.
“组合递归” 组合多次递归 mrg32k3a
“multFibonacci” 乘法滞后的斐波纳契 mlfg6331_64
“菲洛克斯” Philox 4x32发电机,10发 philox4x32_10
“三人行” 带20发子弹的3Fry 4x64发电机 ThreeFry4x64_20

对于MATLAB版本4.0和5.0中使用的传统生成器,请使用以下选项之一。

价值 生成器名称 生成器关键字
'v4' 传统MATLAB版本4.0发电机 MCG16807.
“V5制服” 旧版MATLAB 5.0统一生成器 swb2712
“v5normal” 传统MATLAB版本5.0普通发电机 shr3cong

提示

  • 并行处理时,rng('shuffle')不应用于在不同工人上设置随机数流,以确保自动流,因为它基于当前时间种子随机数发生器。当命令同时发送到多个工人时,尤其如此,例如在A内帕弗作业。对于工人的独立流,使用默认行为或考虑在每个工作人员上使用唯一的子流。兰德斯特朗.

  • 使用RNG.而不是兰德或者兰登“种子”,'状态'“龙卷风”输入,请参阅替换兰德和randn的气馁的语法.

扩展能力

在R2011a中引入