Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

normrnd

正态随机数

说明

示例

r = normrnd(mu,sigma) 从均值参数为 mu 和标准差参数为 sigma 的正态分布中生成随机数。

r = normrnd(mu,sigma,sz1,...,szN) 生成正态随机数数组,其中 sz1,...,szN 指示每个维度的大小。

示例

r = normrnd(mu,sigma,sz) 生成正态随机数数组,其中向量 sz 指定 size(r)

示例

全部折叠

生成一个标准正态分布的随机值。

rng('default') % For reproducibility
r = normrnd(0,1)
r = 0.5377

保存随机数生成器的当前状态。然后基于均值为 3 标准差为 10 的正态分布创建由正态随机数组成的 1×5 向量。

s = rng;
r = normrnd(3,10,[1,5])
r = 1×5

    8.3767   21.3389  -19.5885   11.6217    6.1877

将随机数生成器的状态恢复为 s,然后创建一个由随机数组成的新的 1×5 向量。值与之前相同。

rng(s);
r1 = normrnd(3,10,[1,5])
r1 = 1×5

    8.3767   21.3389  -19.5885   11.6217    6.1877

创建一个由正态分布的随机数组成并且大小与现有数组相同的矩阵。

A = [3 2; -2 1];
sz = size(A);
R = normrnd(0,1,sz)
R = 2×2

    0.5377   -2.2588
    1.8339    0.8622

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

R = normrnd(1,0,size(A));

输入参数

全部折叠

正态分布的均值,指定为标量值或由标量值组成的数组。

要从多个分布中生成随机数,请使用数组指定 musigma。如果 musigma 均为数组,则数组大小必须相同。如果 musigma 是标量,则 normrnd 会将标量参数扩展为与另一个参数大小相同的常量数组。r 中的每个元素均是从 musigma 中对应元素所指定的分布中生成的随机数。

示例: [0 1 2; 0 1 2]

数据类型: single | double

正态分布的标准差,指定为非负标量值或由非负标量值组成的数组。

如果 sigma 为零,则输出 r 始终等于 mu

要从多个分布中生成随机数,请使用数组指定 musigma。如果 musigma 均为数组,则数组大小必须相同。如果 musigma 是标量,则 normrnd 会将标量参数扩展为与另一个参数大小相同的常量数组。r 中的每个元素均是从 musigma 中对应元素所指定的分布中生成的随机数。

示例: [1 1 1; 2 2 2]

数据类型: single | double

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

如果 musigma 是数组,则在进行任何必要的标量扩展后,指定的维度 sz1,...,szN 必须与 musigma 的公共维度相匹配。sz1,...,szN 的默认值为公共维度。

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

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

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

示例: 5,3,2

数据类型: single | double

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

如果 musigma 是数组,则在进行任何必要的标量扩展后,指定的维度 sz 必须与 musigma 的公共维度相匹配。sz 的默认值为公共维度。

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

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

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

示例: [5,3,2]

数据类型: single | double

输出参数

全部折叠

正态随机数,以标量值或标量值数组的形式返回,其维度由 sz1,...,szNsz 指定。r 中的每个元素均是从 musigma 中对应元素所指定的分布中生成的随机数。

替代功能

  • normrnd 是正态分布特有的函数。Statistics and Machine Learning Toolbox™ 还提供泛型函数 random,它支持各种概率分布。要使用 random,请创建一个 NormalDistribution 概率分布对象,并将该对象作为输入参数传递,或指定概率分布名称及其参数。请注意,分布特有的函数 normrnd 比泛型函数 random 的执行速度要快。

  • 使用 randn 生成标准正态分布随机数。

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

参考

[1] Marsaglia, G, and W. W. Tsang. “A Fast, Easily Implemented Method for Sampling from Decreasing or Symmetric Unimodal Density Functions.” SIAM Journal on Scientific and Statistical Computing. Vol. 5, Number 2, 1984, pp. 349–359.

[2] Evans, M., N. Hastings, and B. Peacock. Statistical Distributions. 2nd ed. Hoboken, NJ: John Wiley & Sons, Inc., 1993.

扩展功能

在 R2006a 之前推出