25、matlab随机数生成汇总:控制随机数生成器、均匀分布和正态分布的随机数

1、rng:控制随机数生成器

语法

rng(seed,generator) 还指定随机数生成器要使用的算法。

参数

seed :随机数种子       s :随机数生成器设置
generator :随机数算法 "twister" | "simdTwister" | "combRecursive" | "multFibonacci" | "philox" | "threefry"


1)设置和还原生成器设置

说明

指定随机数生成器设置,以使本示例中的结果具备可重复性。将生成器种子设置为 2,将算法设置为梅森旋转,然后保存生成器设置。

代码及运行结果

rng(2,"twister")
s = rng
x = rand(2,5)s = 包含以下字段的 struct:Type: 'twister'Seed: 2State: [625×1 uint32]x =0.4360    0.5497    0.4204    0.2046    0.29970.0259    0.4353    0.3303    0.6193    0.2668

说明

更改生成器种子和算法,并创建一个新的随机行向量。

 代码及运行结果

rng(1,"philox")
xnew = rand(2,5)xnew =0.5361    0.7753    0.0036    0.8629    0.95760.2319    0.2390    0.5262    0.9974    0.0054

说明

现在还原原始生成器设置并创建一个随机向量 

代码及运行结果

rng(s)
xold = rand(2,5)xold =0.4360    0.5497    0.4204    0.2046    0.29970.0259    0.4353    0.3303    0.6193    0.2668

 2、均匀分布和正态分布的随机数

说明 

使用 rand、randn 和 randi 函数创建随机数序列,使用 randperm 函数创建随机置换整数向量

语法

 语法1:X = rand(n) 返回一个由均匀分布的随机数组成的 n×n 矩阵。
语法2:X = randi(n)随机整数
语法3:X = randn(n) 返回由正态分布的随机数组成的 n×n 矩阵。
语法4:p = randperm(n,k) 返回行向量,其中包含在 1 到 n 之间随机选择的 k 个唯一整数。

 1)随机数组成的矩阵

说明

生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 6*6 矩阵。

代码及运行结果

r = rand(6)r =0.6211    0.8540    0.4281    0.2203    0.5052    0.96460.5291    0.4942    0.0965    0.3498    0.3869    0.50000.1346    0.8466    0.1272    0.4678    0.7936    0.88950.5136    0.0796    0.5967    0.2017    0.5800    0.34160.1844    0.5052    0.2260    0.6404    0.1623    0.56710.7853    0.0653    0.1069    0.4831    0.7008    0.4275

 2)指定区间内的随机数

说明:8行2列随机数

代码及运行结果

r = -5 + 5*rand(8,2)r =-2.8163   -2.9686-1.1172   -4.8640-2.3220   -3.7641-0.2313   -4.6643-2.2790   -0.0307-4.5895   -0.1471-3.1683   -0.9987-0.7457   -1.9909

 3)正态分布随机数组成的矩阵

代码及运行结果

r = randn(5,5)r =0.7993   -2.4356   -0.8009   -1.2599    0.5003-1.9146    1.8796   -0.3064    0.6110   -0.4664-0.5855   -0.1841    1.7639   -0.5998   -0.01520.0593    0.0195    0.1355    0.3987   -0.3804-0.5918   -0.5758   -0.4784   -1.2403   -0.4139

 4)随机整数

说明:生成在 10 和 50 之间均匀分布的2*5 个随机整数。

代码及运算结果

r = randi([10 50],2,5)r =32    14    11    36    2749    22    40    18    36

5) 随机数组成的三维数组

说明:创建一个由随机数组成的 3×3×3 数组

代码及运算结果

r = randi([10 50],2,5)r =32    14    11    36    2749    22    40    18    36>> X = rand([3,3,3])X(:,:,1) =0.6615    0.7780    0.74880.1705    0.1340    0.79860.8817    0.8689    0.5433X(:,:,2) =0.2208    0.3462    0.41970.9185    0.2638    0.54020.5921    0.9139    0.6084X(:,:,3) =0.8262    0.5913    0.69950.6236    0.4893    0.24580.1767    0.5479    0.1866

6) 指定随机数的数据类型

说明:创建一个由其元素为单精度值的随机数组成的 3×4 向量。

代码及运算结果

r = rand(3,4,"single")%单精度随机数
class(r)%类型r =3×4 single 矩阵0.1106    0.6294    0.0953    0.28560.2741    0.2952    0.2838    0.47140.0103    0.1873    0.2149    0.5495ans ='single'

7) 现有数组定义的大小

说明:创建一个由均匀分布的随机数组成并且大小与现有数组相同的矩阵。

代码及运行结果

A = [3 2 1; -2 1 2;1 2 3];
sz = size(A);
X = rand(sz)X =0.8451    0.2321    0.87010.9885    0.6433    0.21740.0489    0.1615    0.7418

8) 现有数组定义的大小和数据类型

说明:创建一个由单精度随机数组成的 3×3矩阵。 创建一个与 p 具有相同大小和数据类型的由随机数组成的数组。

代码及运行结果

p = single([3 2 1; -2 1 2;1 2 3]);
X = rand(size(p),"like",p)
class(X)%类型X =3×3 single 矩阵0.6530    0.2296    0.03060.7989    0.7046    0.35710.0312    0.0876    0.5898ans ='single'

9) 整数的随机排列

说明:生成一个从 1 到 10 的整数的随机排列。

代码及运算结果

r = randperm(10)r =3     1     2     6    10     4     8     9     5     7

10)排列所选的整数

说明:生成一个从整数 1 到 10中随机选择的6唯一整数(没有重复元素)的随机排列。

代码及运算结果

r1 = randperm(10,6)r1 =7     4     6     2     9     3

11) 控制随机数生成

说明:保存随机数生成器的当前状态,并创建一个从 1 到 10 的整数的随机排列。

代码及运算结果

s = rng;
r = randperm(10)
rng(s)
r1 = randperm(10)r =5     9     6     3     7     2     1    10     8     4r1 =5     9     6     3     7     2     1    10     8     4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】 探索Pytz库中的时区列表

基本原理 Python 是一种广泛使用的高级编程语言,它提供了许多库来帮助开发者完成各种任务。在处理时间和日期时,pytz 库是一个非常重要的工具。pytz 是一个提供时区处理功能的Python库,它允许开发者在Python中使用时区信息。 pytz 库基于 I…

2021JSP普及组第二题:插入排序

2021JSP普及组第二题 题目: 思路: 题目要求排序后根据操作进行对应操作。 操作一需要显示某位置数据排序后的位置,所以需要定义结构体数组储存原数据的位置和数据本身排序后所得数据要根据原位置输出排序后的位置,所以建立一个新…

Google Gemini API 使用入门及其集成 Android 应用程序

Google 的 Gemini SDK 是一款功能强大的工具,可直接访问 Android 应用程序中的 Gemini AI 模型。此集成简化了应用程序开发,因为开发人员无需管理复杂的后端 AI 基础架构。让我们深入了解如何将 Gemini 的功能引入您的 Android 项目。 Gemini API 使用入门及其集成 Android 应…

新手快速上手IDEA【常用快捷键】

目录 一、常用二、进阶(提高编码速度)三、其他四、查找、替换与关闭最后 一、常用 说明快捷键复制代码ctrl c粘贴ctrl v剪切ctrl x撤销ctrl z反撤销ctrl shift z保存-save allctrl s全选-select allctrl a 二、进阶(提高编码速度&a…

Android开机动画,framework修改Bootanimation绘制文字。

文章目录 Android开机动画,framework修改Bootanimation动画绘制文字。opengl绘制源码分析 Android开机动画,framework修改Bootanimation动画绘制文字。 frameworks/base/cmds/bootanimation/bootanimation.cpp 绘制时间的一个方法 // We render 12 or …

知识图谱源码笔记

目录 2018年文档生成知识图谱 30多个知识图谱源码 讲原理的 文档生成知识图谱 2018年文档生成知识图谱 https://github.com/liuhuanyong/TextGrapher 30多个知识图谱源码 参考:【回答问题】ChatGPT上线了!推荐30个以上比较好的构建知识图谱源码_c…

开放平台接口安全验证

文章目录 开放平台接口安全验证I 加签方式说明1.1 签名生成的通用步骤1.2 生成随机数算法1.3 举例1.4 签名校验工具II Header参数说明III 业务接口返回结构说明开放平台接口安全验证 统一使用sign签名验证,签名规则也会在本文档中,详细说明。请大家认真阅读。 向平台申请密码…

江苏双线服务器租用该怎样管理?

在选择江苏双线服务器租用时,需要选择一家靠谱的服务提供商,因为江苏省属于经济发展比较迅速的地区,会有着很多鱼龙混杂的服务提供商,所以我们可以去提供商所在地去进行考察一下,确保服务提供商有着良好的声誉和稳定的…

Linux网络编程:数据链路层协议

目录 前言: 1.以太网 1.1.以太网帧格式 1.2.MTU(最大传输单元) 1.2.1.IP协议和MTU 1.2.2.UDP协议和MTU 1.2.3.TCP协议和MTU 2.ARP协议(地址解析协议) 2.1.ARP在局域网通信的角色 2.2.ARP报文格式 2.3.ARP报文…

odoo前端开发环境:深入探索与搭建指南

odoo前端开发环境:深入探索与搭建指南 在Odoo的生态系统中,前端开发环境的搭建对于开发者来说是一个关键而复杂的任务。它不仅涉及技术的选择和应用,还需要对Odoo的架构和机制有深入的理解。本文将从四个方面、五个方面、六个方面和七个方面…

数据库中锁的机制和MVCC协议以及隔离级别

文章目录 数据库中的锁锁与索引的关系释放锁的时机乐观锁与悲观锁行锁与表锁共享锁与排它锁意向锁记录锁、间隙锁和临键锁记录锁间隙锁临键锁 锁优化方案 MVCC协议MySQL的隔离级别脏读和幻读快照读和当前读 版本链Read ViewRead View 与已提交读Read View 与可重复读m_up_limit…

LIMS如何实现符合实验室CMA、CNAS管理体系规范

LIMS(Laboratory Information Management System)实现符合实验室CMA(中国计量认证)、CNAS(中国合格评定国家认可委员会)管理体系规范的过程,主要可以分为以下几个关键步骤: 一、准备…

工业无线wifi系统搭配高速路由,解决联网及数据传输

​面对日益复杂的工业应用场景,企业对无线网络的高速、可靠和安全提出了更高要求。星创易联SR600系列多网口4G路由器应运而生,为工业无线WiFi系统提供了一个性能卓越的高速路由方案。(key-iot.com/iotlist/sr600-5.html) SR600路由器集4G LTE、虚拟专用…

Spring 冷知识:利用 @Profile 实现 AOP 的预先配置

在 Spring 框架中,Profile 注解是一个经常被忽视的特性,它可以让你在特定环境或配置下激活特定的 Bean。这个特性可以用来实现 AOP 的预先配置,即在 Spring 应用启动之前,根据不同的配置文件或环境变量来决定哪些 AOP 拦截器应该被…

直播美颜工具解析:美颜SDK核心技术与性能优化方法

本篇文章,小编将深入解析直播美颜SDK的核心技术及其性能优化方法,以期为开发者提供有价值的参考。 一、美颜SDK核心技术 1.实时人脸检测与识别 美颜SDK的核心技术之一是实时人脸检测与识别。这项技术基于深度学习算法,能够快速、准确地识别…

零刻SER8 AMD 8845Hs Ryzen AI 本地部署大语言模型教程!

零刻SER8 8845HS,配备了一个内置的 NPU(神经网络处理单元),可以通过LM Studio语言大模型来部署己的 GPT 模型 AI 聊天机器人,AI 助手已迅速成为提高生产力、效率,甚至是头脑风暴的关键资源。在本地机器上运行 AI 聊天机…

数字人私有化部署系统厂商大比拼

数字人系统私有化部署放在2022年简直是天方夜谭,没有投资个上百万和数百万想建立自己的一个数字人saas平台是可望不可及的事。但是到了2023年,数字人私有化部署系统价格从最初的数十万,迅速被打压到数万元就可以拥有一个自己的数字人平台。可…

ArcGIS中几个好用的空间分析工具

ArcGIS是一款经典的GIS应用,其空间分析能力很强,有着丰富的空间分析工具。今天,我们一起来了解几个好用的空间分析工具的功用及操作。 注:演示版本为ArcMap10.4.1 1.方向分布(标准差椭圆) 路径&#xff…

陆面生态水文模拟与多源遥感数据同化的实践技术应用

了解陆表过程的主要研究内容以及陆面模型在生态水文研究中的地位和作用;熟悉模型的发展历程,常见模型及各自特点;理解Noah-MP模型的原理,掌握Noah-MP模型在单站和区域的模拟、模拟结果的输出和后续分析及可视化等方法;…

数分—AB测试

一、介绍 AB测试是一种常用于比较两种或多种不同版本的产品、服务或策略效果的实验方法。在AB测试中,被比较的版本被标记为A组和B组,然后两组被随机分配给不同的用户群体或实验对象。接着,针对每个组收集数据,比如用户行为、转化…