目录
语法
说明
示例
通过指定分布名称和参数生成一个随机数
使用分布对象生成一个随机数
重置随机数生成器
根据现有数组克隆大小
生成多个随机数
生成随机数组成的多维数组
random函数的功能是生成随机数。
语法
R = random(name,A)
R = random(name,A,B)
R = random(name,A,B,C)
R = random(name,A,B,C,D)
R = random(pd)
R = random(___,sz1,...,szN)
R = random(___,sz)
说明
R = random(name,A) 从由 name 和分布参数 A 指定的单参数分布族中返回一个随机数。
R = random(name,A,B) 从由 name 和分布参数 A 和 B 指定的双参数分布族中返回一个随机数。
R = random(name,A,B,C) 从由 name 和分布参数 A、B 和 C 指定的三参数分布族中返回一个随机数。
R = random(name,A,B,C,D) 从由 name 和分布参数 A、B、C 和 D 指定的四参数分布族中返回一个随机数。
R = random(pd) 从概率分布对象 pd 中返回一个随机数。
R = random(___,sz1,...,szN) 使用上述任一语法的输入参数,根据指定的概率分布生成一个随机数数组,其中 sz1,...,szN 表示每个维度的大小。
R = random(___,sz) 使用上述任一语法的输入参数,根据指定的概率分布生成一个随机数数组,其中向量 sz 指定 size(r)。
示例
通过指定分布名称和参数生成一个随机数
从均值 μ 等于 1 且标准差 σ 等于 5 的正态分布中生成一个随机数。指定分布名称 'Normal' 和分布参数。
rng('default') % For reproducibility
mu = 1;
sigma = 5;
r = random('Normal',mu,sigma)
r = 3.6883
使用分布对象生成一个随机数
创建一个正态分布对象,并使用该对象生成一个随机数。创建均值 μ 等于 1、标准差 σ 等于 5 的正态分布对象。
mu = 1;
sigma = 5;
pd = makedist('Normal','mu',mu,'sigma',sigma);
从该分布中生成一个随机数。
rng('default') % For reproducibility
r = random(pd)
r = 3.6883
重置随机数生成器
保存随机数生成器的当前状态。然后从速率参数为 5 的泊松分布生成一个随机数。
s = rng;
r = random('Poisson',5)
r = 5
将随机数生成器的状态恢复为 s,然后创建一个新随机数。值与之前相同。
rng(s);
r1 = random('Poisson',5)
r1 = 5
根据现有数组克隆大小
创建一个由随机数组成并且大小与一个现有数组相同的矩阵。使用形状参数为 2 和 0、尺度参数为 1、位置参数为 0 的稳定分布。
A = [3 2; -2 1];
sz = size(A);
R = random('Stable',2,0,1,0,sz)
R = 2×20.7604 -3.19452.5935 1.2193
可以将前两行代码合并成一行。
R = random('Stable',2,0,1,0,size(A))
R = 2×20.4508 -0.6132-1.8494 0.4845
生成多个随机数
使用默认参数值创建一个 Weibull 概率分布对象。
pd = makedist('Weibull')
pd = WeibullDistributionWeibull distributionA = 1B = 1
从该分布中生成随机数。
rng('default') % For reproducibility
r = random(pd,10000,1);
使用服从 Weibull 分布拟合的 100 个 bin 构造一个直方图。
histfit(r,100,'weibull')
如图所示:
生成随机数组成的多维数组
创建一个标准正态概率分布对象。
pd = makedist('Normal')
pd = NormalDistributionNormal distributionmu = 0sigma = 1
从该分布中生成一个 2×3×2 随机数数组。
r = random(pd,[2,3,2])
r =
r(:,:,1) =0.5377 -2.2588 0.31881.8339 0.8622 -1.3077r(:,:,2) =-0.4336 3.5784 -1.34990.3426 2.7694 3.0349