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

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

SQLServer中生成雪花ID(Snowflake ID)的实现方法

《SQLServer中生成雪花ID(SnowflakeID)的实现方法》:本文主要介绍在SQLServer中生成雪花ID(SnowflakeID)的实现方法,文中通过示例代码介绍的非常详细,... 目录前言认识雪花ID雪花ID的核心特点雪花ID的结构(64位)雪花ID的优势雪花ID的局限性雪花ID的应用场景

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和