问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB中random函数用法详解

创作时间:
作者:
@小白创作中心

MATLAB中random函数用法详解

引用
CSDN
1.
https://blog.csdn.net/jk_101/article/details/133588374

本文详细介绍了MATLAB中random函数的使用方法,包括其语法、功能说明以及多个具体应用场景的示例。对于学习和使用MATLAB的用户具有较高的参考价值。

语法

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  
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号