创建随机数的数组
MATLAB®使用算法来生成伪随机和pseudoindependent数字。这些数字是没有严格的数学意义上的随机和独立,但他们通过各种统计测试的随机性和独立,和他们的计算可以重复测试或诊断的目的。
的兰德
,兰迪
,randn
,randperm
创建数组函数的主要功能是随机的数字。的rng
函数允许您控制种子和算法生成随机数。
随机数函数
有四种基本的随机数函数:兰德
,兰迪
,randn
,randperm
。的兰德
函数返回实数在0和1之间,来自一个均匀分布。例如,
r1 =兰德(1000 1);
r1
是1000 -,- 1列向量包含真正的浮点数来自均匀分布。所有的值r1
在开区间(0,1)。这些值的直方图基本持平,这表明一个相当均匀采样的数字。
的兰迪
函数返回双
整数值从离散均匀分布。例如,
r2 =兰迪(1000 1);
r2
是1000 -,- 1列向量包含整数值从离散均匀分布的范围是1,2,…,10。这些值的直方图基本持平,这表明一个相当均匀采样1到10之间的整数。
的randn
函数返回数组的浮点数,来自一个标准正态分布。例如,
r3 = randn (1000 1);
r3
是1000 -,- 1列向量包含数字来自一个标准正态分布。的柱状图r3
看起来像一个大约平均为0的正态分布和标准偏差是1。
您可以使用randperm
创建数组函数的随机整数的值没有重复值。例如,
5 r4 = randperm(15日);
r4
是一个1-by-5数组包含在闭区间随机选择的整数值,(1、15)。不像兰迪
可以返回一个数组,其中包含重复值,返回的数组randperm
没有重复值。
连续调用这些函数返回不同的结果。这种行为是非常有用的用于创建不同的随机值的数组。
随机数生成器
MATLAB提供了几种发生器算法选择,总结在下表中。
关键字 | 发电机 | 多个流和Substream支持金宝app | 近似的时期完全精确 |
---|---|---|---|
mt19937ar | 梅森素数捻线机(使用默认流在MATLAB启动时) | 没有 | 219937年1 |
dsfmt19937 | SIMD-oriented快速梅森素数捻线机 | 没有 | 219937年1 |
mcg16807 | 可乘同余发电机 | 没有 | 231日2 |
mlfg6331_64 | 乘法滞后斐波那契发电机 | 是的 | 2124年(251流长度为2的72年) |
mrg32k3a | 结合多个递归发电机 | 是的 | 2191年(263年流长度为2的127年) |
philox4x32_10 | Philox 4×10轮发电机 | 是的 | 2193年(264年流长度为2的129年) |
threefry4x64_20 | Threefry 4 x64和20轮发电机 | 是的 | 2514年(2256年流长度为2的258年) |
shr3cong | 移位寄存器发电机总结与线性同余发生器 | 没有 | 264年 |
swb2712 | 修改减去借发电机 | 没有 | 21492年 |
使用rng
函数设置使用的种子和发电机兰德
,兰迪
,randn
,randperm
功能。例如,rng(“洗牌”,“philox”)
种子Philox 4 x32发生器根据当前时间,产生不同的数字每次调用序列。
有关更多信息,请参见控制随机数生成。