主要内容

创建随机数的数组

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重启时,看到的启动后为什么随机数重复吗?

更多信息关于控制随机数发生器的状态使用相同的随机数重复计算,或保证不同的随机数用于重复计算,看看控制随机数生成

随机数字数据类型

兰德randn在默认情况下双精度函数生成的值。

rng (“默认”)=兰德(1、5);类(一)
ans =“双”

双显式地指定类:

rng (“默认”)B =兰德(1、5、“双”);类(B)
ans =“双”
isequal (A, B)
ans = 1

兰德randn还可以生成值在单精度。

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 '

另请参阅

||||

相关的话题