Main Content

random

随机数

说明

R = random(name,A) 从由 name 和分布参数 A 指定的单参数分布族中返回一个随机数。

示例

R = random(name,A,B) 从由 name 和分布参数 AB 指定的双参数分布族中返回一个随机数。

R = random(name,A,B,C) 从由 name 和分布参数 ABC 指定的三参数分布族中返回一个随机数。

R = random(name,A,B,C,D) 从由 name 和分布参数 ABCD 指定的四参数分布族中返回一个随机数。

示例

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×2

    0.7604   -3.1945
    2.5935    1.2193

您可以将前两行代码合并成一行。

R = random('Stable',2,0,1,0,size(A))
R = 2×2

    0.4508   -0.6132
   -1.8494    0.4845

使用默认参数值创建一个 Weibull 概率分布对象。

pd = makedist('Weibull')
pd = 
  WeibullDistribution

  Weibull distribution
    A = 1
    B = 1

从该分布中生成随机数。

rng('default')  % For reproducibility
r = random(pd,10000,1);

使用服从 Weibull 分布拟合的 100 个 bin 构造一个直方图。

histfit(r,100,'weibull')

Figure contains an axes object. The axes object contains 2 objects of type bar, line.

创建一个标准正态概率分布对象。

pd = makedist('Normal')
pd = 
  NormalDistribution

  Normal distribution
       mu = 0
    sigma = 1

从该分布中生成一个 2×3×2 随机数数组。

r = random(pd,[2,3,2])
r = 
r(:,:,1) =

    0.5377   -2.2588    0.3188
    1.8339    0.8622   -1.3077


r(:,:,2) =

   -0.4336    3.5784   -1.3499
    0.3426    2.7694    3.0349

输入参数

全部折叠

概率分布名称,指定为下表中的概率分布名称之一。

name分布输入参数 A输入参数 B输入参数 C输入参数 D
'Beta'Beta Distributiona 第一个形状参数b 第二个形状参数
'Binomial'Binomial Distributionn 试验次数p 每次试验成功的概率
'BirnbaumSaunders'Birnbaum-Saunders Distributionβ 尺度参数γ 形状参数
'Burr'Burr Type XII Distributionα 尺度参数c 第一个形状参数k 第二个形状参数
'Chisquare''chi2'Chi-Square Distributionν 自由度
'Exponential'Exponential Distributionμ 均值
'Extreme Value''ev'Extreme Value Distributionμ 位置参数σ 尺度参数
'F'F Distributionν1 分子自由度ν2 分母自由度
'Gamma'Gamma Distributiona 形状参数b 尺度参数
'Generalized Extreme Value''gev'Generalized Extreme Value Distributionk 形状参数σ 尺度参数μ 位置参数
'Generalized Pareto''gp'Generalized Pareto Distributionk 尾部指数(形状)参数σ 尺度参数μ 阈值(位置)参数
'Geometric'Geometric Distributionp 概率参数
'Half Normal''hn'Half-Normal Distributionμ 位置参数σ 尺度参数
'Hypergeometric''hyge'Hypergeometric Distributionm 总体的大小k 总体中具有所需特征的项数n 抽取的样本数量
'InverseGaussian'Inverse Gaussian Distributionμ 尺度参数λ 形状参数
'Logistic'Logistic Distributionμ 均值σ 尺度参数
'LogLogistic'Loglogistic Distributionμ 对数值的均值σ 对数值的尺度参数
'LogNormal'Lognormal Distributionμ 对数值的均值σ 对数值的标准差
'Nakagami'Nakagami Distributionμ 形状参数ω 尺度参数
'Negative Binomial''nbin'Negative Binomial Distributionr 成功次数p 单个试验的成功概率
'Noncentral F''ncf'Noncentral F Distributionν1 分子自由度ν2 分母自由度δ 非中心参数
'Noncentral t''nct'Noncentral t Distributionν 自由度δ 非中心参数
'Noncentral Chi-square''ncx2'Noncentral Chi-Square Distributionν 自由度δ 非中心参数
'Normal'正态分布μ 均值 σ 标准差
'Poisson'泊松分布λ 均值
'Rayleigh'Rayleigh Distributionb 尺度参数
'Rician'Rician Distributions 非中心参数σ 尺度参数
'Stable'Stable Distributionα 第一个形状参数β 第二个形状参数γ 尺度参数δ 位置参数
'T'Student's t Distributionν 自由度
'tLocationScale't Location-Scale Distributionμ 位置参数σ 尺度参数ν 形状参数
'Uniform'Uniform Distribution (Continuous)a 下部端点(最小值)b 上部端点(最大值)
'Discrete Uniform''unid'Uniform Distribution (Discrete)n 最大可观测值
'Weibull''wbl'Weibull Distributiona 尺度参数b 形状参数

示例: 'Normal'

第一概率分布参数,指定为标量值或标量值组成的数组。

如果输入参数 ABCD 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random 将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 ABCD 的定义。

数据类型: single | double

第二概率分布参数,指定为标量值或标量值组成的数组。

如果输入参数 ABCD 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random 将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 ABCD 的定义。

数据类型: single | double

第三概率分布参数,指定为标量值或标量值组成的数组。

如果输入参数 ABCD 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random 将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 ABCD 的定义。

数据类型: single | double

第四概率分布参数,指定为标量值或标量值组成的数组。

如果输入参数 ABCD 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random 将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 ABCD 的定义。

数据类型: single | double

概率分布,指定为下表中的概率分布对象之一。

分布对象用于创建概率分布对象的函数或 App
BetaDistributionmakedistfitdist分布拟合器
BinomialDistributionmakedistfitdist分布拟合器
BirnbaumSaundersDistributionmakedistfitdist分布拟合器
BurrDistributionmakedistfitdist分布拟合器
ExponentialDistributionmakedistfitdist分布拟合器
ExtremeValueDistributionmakedistfitdist分布拟合器
GammaDistributionmakedistfitdist分布拟合器
GeneralizedExtremeValueDistributionmakedistfitdist分布拟合器
GeneralizedParetoDistributionmakedistfitdist分布拟合器
HalfNormalDistributionmakedistfitdist分布拟合器
InverseGaussianDistributionmakedistfitdist分布拟合器
KernelDistributionfitdist分布拟合器
LogisticDistributionmakedistfitdist分布拟合器
LoglogisticDistributionmakedistfitdist分布拟合器
LognormalDistributionmakedistfitdist分布拟合器
LoguniformDistributionmakedist
MultinomialDistributionmakedist
NakagamiDistributionmakedistfitdist分布拟合器
NegativeBinomialDistributionmakedistfitdist分布拟合器
NormalDistributionmakedistfitdist分布拟合器
尾部具有广义帕累托分布的分段分布paretotails
PiecewiseLinearDistributionmakedist
PoissonDistributionmakedistfitdist分布拟合器
RayleighDistributionmakedistfitdist分布拟合器
RicianDistributionmakedistfitdist分布拟合器
StableDistributionmakedistfitdist分布拟合器
tLocationScaleDistributionmakedistfitdist分布拟合器
TriangularDistributionmakedist
UniformDistributionmakedist
WeibullDistributionmakedistfitdist分布拟合器

每个维度的大小,指定为整数值。例如,指定 5,3,2 会从指定的概率分布生成一个由随机数组成的 5×3×2 数组。

如果输入参数 ABCD 中的一个或多个是数组,则在进行任何必要的标量扩展后,指定的维度 sz1,...,szN 必须与 ABCD 的公共维度相匹配。sz1,...,szN 的默认值为公共维度。

  • 如果您指定单一值 sz1,则 R 是大小为 sz1×sz1 的方阵。

  • 如果任一维度的大小是 0 或负数,则 R 是空数组。

  • 对于第二个维度以上的维度,random 会忽略大小为 1 的尾部维度。例如,指定 3,1,1,1 会生成由随机数组成的 3×1 向量。

示例: 5,3,2

数据类型: single | double

每个维度的大小,指定为由整数组成的行向量。例如,指定 [5 3 2] 会从指定的概率分布生成一个由随机数组成的 5×3×2 数组。

如果输入参数 ABCD 中的一个或多个是数组,则在进行任何必要的标量扩展后,指定的维度 sz 必须与 ABCD 的公共维度相匹配。sz 的默认值为公共维度。

  • 如果您指定单一值 [sz1],则 R 是大小为 sz1×sz1 的方阵。

  • 如果任一维度的大小是 0 或负数,则 R 是空数组。

  • 对于第二个维度以上的维度,random 会忽略大小为 1 的尾部维度。例如,指定 [3 1 1 1] 会生成由随机数组成的 3×1 向量。

示例: [5 3 2]

数据类型: single | double

输出参数

全部折叠

从指定的概率分布生成的随机数,以标量值或标量值数组的形式返回,其维度由 sz1,...,szNsz 指定。

如果您指定分布参数 ABCD,则 R 中的每个元素均是从 ABCD 中对应元素所指定的分布中生成的随机数。

替代功能

  • random 是泛型函数,它按名称 name 或概率分布对象 pd 接受分布。使用分布特有的函数更快,例如正态分布特有的 randnnormrnd,二项分布特有的 binornd。有关特定于分布的函数的列表,请参阅Supported Distributions

  • 要以交互方式生成随机数,请使用 randtool,它是用于生成随机数的用户界面。

扩展功能

版本历史记录

在 R2006a 之前推出