random
随机数
语法
说明
示例
通过指定分布名称和参数生成一个随机数
从均值 等于 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')
生成随机数组成的多维数组
创建一个标准正态概率分布对象。
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
— 概率分布名称
概率分布名称的字符向量或字符串标量
概率分布名称,指定为下表中的概率分布名称之一。
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' | Inverse Gaussian Distribution | μ 尺度参数 | λ 形状参数 | — | — |
'Logistic' | 逻辑分布 | μ 均值 | σ 尺度参数 | — | — |
'LogLogistic' | Loglogistic Distribution | μ 对数值的均值 | σ 对数值的尺度参数 | — | — |
'LogNormal' | 对数正态分布 | μ 对数值的均值 | σ 对数值的标准差 | — | — |
'Nakagami' | Nakagami Distribution | μ 形状参数 | ω 尺度参数 | — | — |
'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'
pd
— 概率分布
概率分布对象
概率分布,指定为下表中的概率分布对象之一。
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
输出参数
替代功能
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 之前推出
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:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
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)