MATLAB中random函数用法

目录

语法

说明

示例

通过指定分布名称和参数生成一个随机数

使用分布对象生成一个随机数

重置随机数生成器

根据现有数组克隆大小

生成多个随机数

生成随机数组成的多维数组


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值