matlab中的rand ,randn,和randi函数

news/2024/11/18 13:58:17/

1. rand(m,n) 生成m行n列均匀分布在(0~1)之间的伪随机数。

rand(1,5)ans =0.6797    0.6551    0.1626    0.1190    0.4984

2. randn (m,n) 生成m行n列标准正态分布的伪随机数(均值为0,方差为1)

 randn(1,5)ans =1.5326   -0.7697    0.3714   -0.2256    1.1174

3. randi 生成均匀分布的伪随机整数

Pseudorandom integers from a uniform discrete distribution.
randi(iMax)在 [1,iMax] 生成均匀分布的伪随机整数

randi(5)ans =3

randi(iMax,m,n)在 [1,iMax] 上生成 m X n 型随机矩阵

randi(5,1,5)ans =4     5     5     3     1

randi([iMin,iMax],m,n) ,在 [iMin,iMax] 生成 m X n 型随机矩阵

 randi([2,5],1,5)ans =2     3     5     3     5

4. 重复生成前一次的随机数

我们可以使用rng来保存上一次生成随机数的状态,也就是常说的随机数种子seed

s = rng;  % 保存a的随机数seed
a = randn(1,5)
k = rng;  % 保存b的随机数seed
b = randn(1,5)
rng(s)  % 调用a的随机数seed
a_t = randn(1,5)
rng(k)  % 调用b的随机数seed
b_t = randn(1,5)

结果如下:

a =0.8003   -1.5094    0.8759   -0.2428    0.1668b =-1.9654   -1.2701    1.1752    2.0292   -0.2752a_t =0.8003   -1.5094    0.8759   -0.2428    0.1668b_t =-1.9654   -1.2701    1.1752    2.0292   -0.2752

也可以使用下面这种方法来循环生成同样的随机数
rng(seed)中的seed可以自行选取不同的数值,以此来控制不同的随机数状态

for i = 1:5rng(1)x = randn(1,5)
end

结果如下:

x =-0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =-0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =-0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =-0.6490    1.1812   -0.7585   -1.1096   -0.8456

x =-0.6490    1.1812   -0.7585   -1.1096   -0.8456

可以看到生成的随机数都是一样的。


http://www.ppmy.cn/news/258155.html

相关文章

netsh int ip 添加/删除 TCP 协议 excludedportrange 的方法

本文参考Many excludedportranges how to delete - hyper-v is disabled。 以管理员身份运行命令提示符,运行: netsh int ip show excludedportrange protocoltcp查看当前协议为 TCP 的 excludedportrange 为: 协议 tcp 端口排除范围 开始端…

6410

“手把手教你学linux驱动开发”OK6410系列之03---LED字符设备驱动 上一篇文章我们介绍了字符设备驱动程序的框架,本篇文章我们将操作真实的硬件---LED。 一、实验环境 开发机环境 操作系统:ubuntu 9.10 交叉编译环境:arm-linux-gcc 4.2.2 …

网友畅谈:柯达 DX6490实际使用感受

柯达DX6490是其旗下EasyShare系列的产品,这款新品数码相机并非柯达EasyShare系列中像素最高的产品,它采用的是400万像素CCD,不过DX6490的杀手锏是其配置的10X光学变焦的德国施耐德镜头,这是全球第二款具备400万像素及10X光学变焦的数码相机。…

QCM6490 QUDTT测试

前言: 基于最新版 QDUTT(QCOM DDR USB TEST TOOL) 2.0.2 介绍了如何使用 QDUTT 对 QCM6490运行 DDR 调试映像 (DDI) 测试。本文对这些设备进行内存测试的软件工程师有用。 QCM6490中引入了 DDI,以提供 XML 绑定语言 (XBL) 的 DD…

QCM6490 SSR 记述(一)

项目场景: modem 子系统crash导致系统crash,偶现。且SSR已经关闭。 如果disable_restart_work 设置为DISABLE_SSR,那么不管什么(wlan adsp-audio/sensor modem etc)触发了SSR,都不会重启 #define DISABL…

Qt延时函数跨天导致的死循环问题

问题描述 进程A给进程B发送数据,进程B收到数据后进行处理。但是奇怪的时跨天的情况下,会偶尔出现进程B收不到数据的情况,重启进程A和进程B后收数据正常(进程B管理着进程A,会一起重启,因此不清楚具体那个软…

【CesiumJS入门】(3)ImageryLayer之图层卷帘

前言 上一篇博客简单得介绍了影像图层并成功在视图上加载出来了,而今天我们来实现一个简单的可视化效果,影像图层卷帘。 前置知识:Cesium 事件详解(鼠标事件、相机事件、键盘事件、场景触发事件)_cesium点击事件_GIS…

《C++高级编程》读书笔记(四:设计专业的C++程序)

1、参考引用 C高级编程(第4版,C17标准)马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门,笔记链接如下 21天学通C读书笔记(文章链接汇总) 1. 程序设计概述 在启动新程序(或已有程序的新功能&…