创建随机数的数组
MATLAB®使用算法来生成伪随机和pseudoindependent数字。这些数字是没有严格的数学意义上的随机和独立,但他们通过各种统计测试的随机性和独立,和他们的计算可以重复测试或诊断的目的。
的兰德
,兰迪
,randn
,randperm
创建数组函数的主要功能是随机的数字。的rng
函数允许您控制种子和算法生成随机数。
随机数函数
有四种基本的随机数函数:兰德
,兰迪
,randn
,randperm
。的兰德
函数返回浮点数在0和1之间,来自一个均匀分布。例如:
rng (“默认”)r1 =兰德(1000 1);
r1
是1000 -,- 1列向量包含真正的浮点数来自均匀分布。所有的值r1
在开区间(0,1)。这些值的直方图基本持平,这表明一个相当均匀采样的数字。
的兰迪
函数返回双
整数值从离散均匀分布。例如,
r2 =兰迪(1000 1);
r2
是1000 -,- 1列向量包含整数值从离散均匀分布的范围是在区间[1,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提供几个发生器算法选项,表中进行了总结。
价值 | 发电机的名字 | 发电机的关键字 |
---|---|---|
“旋风” |
梅森素数捻线机(使用默认流在MATLAB启动时) | mt19937ar |
“simdTwister” |
SIMD-oriented快速梅森素数捻线机 | dsfmt19937 |
“combRecursive” |
结合多个递归 | mrg32k3a |
“multFibonacci” |
乘法滞后斐波那契 | mlfg6331_64 |
“philox” |
Philox 4×10轮发电机 | philox4x32_10 |
“threefry” |
Threefry 4 x64和20轮发电机 | threefry4x64_20 |
v4的 |
遗留MATLAB 4.0版本生成器 | mcg16807 |
“v5uniform” |
遗留MATLAB 5.0版本统一的发电机 | swb2712 |
“v5normal” |
遗留MATLAB 5.0版本正常发电机 | shr3cong |
使用rng
函数设置使用的种子和发电机兰德
,兰迪
,randn
,randperm
功能。例如,rng(0,捻线机)
发电机重置为其默认状态。避免重复的随机数数组MATLAB重启时,看到的启动后为什么随机数重复吗?
更多信息关于控制随机数发生器的状态使用相同的随机数重复计算,或保证不同的随机数用于重复计算,看看控制随机数生成。
随机数字数据类型
rng (“默认”)=兰德(1、5);类(一)
ans =“双”
双显式地指定类:
rng (“默认”)B =兰德(1、5、“双”);类(B)
ans =“双”
isequal (A, B)
ans = 1
rng (“默认”)=兰德(1、5、“单一”);类(一)
ans = '单'
的值是一样的,如果你已经从前面的示例将双精度值。函数的随机流从进步同样不管什么类返回的值。
A、B
A = B = 0.8147 0.9058 0.1270 0.9134 0.6324 0.8147 0.9058 0.1270 0.9134 0.6324
兰迪
金宝app同时支持整数类型和单引号或双精度。
一个=兰迪(10 [1],1、5、“双”);类(一)
ans =“双”
B =兰迪(10 [1],1、5、“uint8”);类(B)
ans = ' uint8 '