随机数
全页折叠
语法
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 reproducibilitymu = 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 reproducibilityr = 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
生成多个随机数
打开实时脚本
使用默认参数值创建一个威布尔概率分布对象。
pd = makedist('Weibull')
pd = WeibullDistribution Weibull distribution A = 1 B = 1
从该分布中生成随机数。
rng('default') % For reproducibilityr = random(pd,10000,1);
使用服从威布尔分布拟合的 100 个 bin 构造一个直方图。
histfit(r,100,'weibull')
生成随机数组成的多维数组
打开实时脚本
创建一个标准正态概率分布对象。
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.3077r(:,:,2) = -0.4336 3.5784 -1.3499 0.3426 2.7694 3.0349
输入参数
全部折叠
name
— 概率分布名称
概率分布名称的字符向量或字符串标量
概率分布名称,指定为下表中的概率分布名称之一。
name | 分布 | 输入参数 A | 输入参数 B | 输入参数 C | 输入参数 D |
---|---|---|---|---|---|
'Beta' | Beta Distribution | a 第一个形状参数 | b 第二个形状参数 | — | — |
'Binomial' | Binomial Distribution | n 试验次数 | 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 Distribution | a 形状参数 | b 尺度参数 | — | — |
'Generalized Extreme Value' 或 'gev' | Generalized Extreme Value Distribution | k 形状参数 | σ 尺度参数 | μ 位置参量 | — |
'Generalized Pareto' 或 'gp' | Generalized Pareto Distribution | k 尾部指数(形状)参数 | σ 尺度参数 | μ 阈值(位置)参数 | — |
'Geometric' | Geometric Distribution | p 概率参数 | — | — | — |
'Half Normal' 或 'hn' | Half-Normal Distribution | μ 位置参量 | σ 尺度参数 | — | — |
'Hypergeometric' 或 'hyge' | Hypergeometric Distribution | m 总体的大小 | k 总体中具有所需特征的项数 | n 抽取的样本数量 | — |
'InverseGaussian' | 逆高斯分布 | μ 尺度参数 | λ 形状参数 | — | — |
'Logistic' | 逻辑分布 | μ 均值 | σ 尺度参数 | — | — |
'LogLogistic' | Loglogistic Distribution | μ 对数值的均值 | σ 对数值的尺度参数 | — | — |
'LogNormal' | 对数正态分布 | μ 对数值的均值 | σ 对数值的标准差 | — | — |
'Pearson' | Pearson Distribution | μ 均值 | σ 标准差 | γ 偏度 | κ 峰度 |
'Nakagami' | Nakagami 分布 | μ 形状参数 | ω 尺度参数 | — | — |
'Negative Binomial' 或 'nbin' | Negative Binomial Distribution | r 成功次数 | 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' | 瑞利分布 | b 尺度参数 | — | — | — |
'Rician' | Rician Distribution | s 非中心参数 | σ 尺度参数 | — | — |
'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 Distribution | a 尺度参数 | b 形状参数 | — | — |
示例: 'Normal'
A
— 第一概率分布参数
标量值 | 标量值组成的数组
第一概率分布参数,指定为标量值或标量值组成的数组。
如果输入参量 A
、B、C 和 D 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random
将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 A
、B
、C
和 D
的定义。
数据类型: single
| double
B
— 第二概率分布参数
标量值 | 标量值组成的数组
第二概率分布参数,指定为标量值或标量值组成的数组。
如果输入参量 A、B
、C 和 D 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random
将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 A
、B
、C
和 D
的定义。
数据类型: single
| double
C
— 第三概率分布参数
标量值 | 标量值组成的数组
第三概率分布参数,指定为标量值或标量值组成的数组。
如果输入参量 A、B、C
和 D 中的一个或多个是数组,则数组大小必须相同。在这种情况下,random
将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 A
、B
、C
和 D
的定义。
数据类型: single
| double
D
— 第四概率分布参数
标量值 | 标量值组成的数组
第四概率分布参数,指定为标量值或标量值组成的数组。
如果输入参量 A、B、C 和 D
中的一个或多个是数组,则数组大小必须相同。在这种情况下,random
将每个标量输入扩展为与数组输入大小相同的常量数组。请参阅 name 了解每个分布的 A
、B
、C
和 D
的定义。
数据类型: single
| double
sz1,...,szN
— 每个维度的大小(作为单独参量)
整数值
每个维度的大小,指定为整数值。例如,指定 5,3,2
会从指定的概率分布生成一个由随机数组成的 5×3×2 数组。
如果输入参量 A、B、C 和 D 中的一个或多个是数组,则在进行任何必要的标量扩展后,指定的维度 sz1,...,szN
必须与 A
、B
、C
和 D
的公共维度相匹配。sz1,...,szN
的默认值为公共维度。
如果您指定单一值
sz1
,则 R 是大小为sz1
×sz1
的方阵。如果任一维度的大小是
0
或负数,则R
是空数组。对于第二个维度以上的维度,
random
会忽略大小为 1 的尾部维度。例如,指定3,1,1,1
会生成由随机数组成的 3×1 向量。
示例: 5,3,2
数据类型: single
| double
sz
— 每个维度的大小(作为行向量)
由整数组成的行向量
每个维度的大小,指定为由整数组成的行向量。例如,指定 [5 3 2]
会从指定的概率分布生成一个由随机数组成的 5×3×2 数组。
如果输入参量 A、B、C 和 D 中的一个或多个是数组,则在进行任何必要的标量扩展后,指定的维度 sz
必须与 A
、B
、C
和 D
的公共维度相匹配。sz
的默认值为公共维度。
如果您指定单一值
[sz1]
,则 R 是大小为sz1
×sz1
的方阵。如果任一维度的大小是
0
或负数,则R
是空数组。对于第二个维度以上的维度,
random
会忽略大小为 1 的尾部维度。例如,指定[3 1 1 1]
会生成由随机数组成的 3×1 向量。
示例: [5 3 2]
数据类型: single
| double
输出参量
全部折叠
R
— 随机数
标量值 | 标量值组成的数组
从指定的概率分布生成的随机数,以标量值或标量值数组的形式返回,其维度由 sz1,...,szN 或 sz 指定。
如果您指定分布参数 A、B、C 或 D,则 R
中的每个元素均是从 A
、B
、C
和 D
中对应元素所指定的分布中生成的随机数。
替代功能
random
是泛型函数,它按名称name
或概率分布对象pd
接受分布。使用分布特有的函数更快,例如正态分布特有的 randn 和 normrnd,二项分布特有的 binornd。有关特定于分布的函数的列表,请参阅Supported Distributions。要以交互方式生成随机数,请使用 randtool,它是用于生成随机数的用户界面。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
输入参量
name
必须为编译时常量。例如,要使用正态分布,请将coder.Constant('Normal')
包含在 codegen (MATLAB Coder) 的-args
值中。代码生成不支持概率分布对象 (
pd
) 输入参量。
有关代码生成的详细信息,请参阅 Introduction to Code Generation 和 General Code Generation Workflow。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
全部展开
R2023b: 支持皮尔逊分布
从 R2023b 开始,random
支持皮尔逊分布。
另请参阅
cdf | pdf | icdf | mle | makedist | fitdist | 分布拟合器 | paretotails
主题
- Random Number Generation
- Generate Random Numbers Using the Triangular Distribution
- Working with Probability Distributions
- Supported Distributions
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 简体中文
- English
- 日本 (日本語)
- 한국 (한국어)
Contact your local office