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

本文主要是介绍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

这篇关于25、matlab随机数生成汇总:控制随机数生成器、均匀分布和正态分布的随机数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事