当前位置: 首页 > news >正文

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

相关文章:

  • 功能全面的手机壁纸应用,种类齐全、众多高清壁纸
  • OpenHarmony包管理子系统
  • Linux lsblk 命令详解:查看磁盘和分区信息 (中英双语)
  • Spring Boot Validation 接口校验:从零到掌握
  • python中轻量级 LLM 应用开发框架 Promptic 如何有效进行对话管理?
  • AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构
  • 基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】
  • DPVS-1:编译安装DPVS (ubuntu22.04)
  • DeepSeek-R1之三_基于RAGFlowAI托管平台在Docker中部署搭建本地AI知识库
  • 关于java中的BigInteger类
  • 区块链相关方法-波特五力分析模型
  • Eigen3开发入门指南:矩阵操作与核心功能详解
  • ChromeDriver版本不匹配问题的解决
  • Android Binder机制
  • Java 继承
  • hi3516cv610的isp调试专业名词
  • Spring Boot定时任务原理
  • 数据结构:实验题目:单链表归并。将两个非递减次序排列的单链表归并为一个非递增次序排列的单链表,并计算表长。要求利用原来两个单链表的结点存放合并后的单链表。
  • JVM 面试题相关总结
  • 设计模式教程:迭代器模式(Iterator Pattern)
  • 碧桂园:砸锅卖铁保交房、持续推进保主体,尽快让公司恢复正常经营
  • 泰特现代美术馆25年:那些瞬间,让艺术面向所有人
  • 伤员回归新援融入,海港逆转海牛重回争冠集团
  • 三大猪企4月生猪销量同比均增长,销售均价同比小幅下降
  • 国家出口管制工作协调机制办公室部署开展打击战略矿产走私出口专项行动
  • 江西省直机关工委副书记熊亮华履新宜春市委常委、宣传部部长