MATLAB之rand、randn、randi和randperm
参考 https://ww2.mathworks.cn/help/matlab/random-number-generation.html
整理MATLAB生成随机数的一些函数及其用法,以供查阅。
函数目录
rand |
均匀分布的随机数 |
randn |
正态分布的随机数 |
randi |
均匀分布的伪随机数 |
randperm |
随机置换 |
rng |
控制随机数生成 |
rand
语法
X = rand
X = rand(n)
X = rand(sz1,...,szN)
X = rand(sz)
X = rand(___,typename)
X = rand(___,'like',p)
说明
X = rand
返回一个在区间 (0,1) 内均匀分布的随机数。
X = rand(
n) 返回一个 n
×n
的随机数矩阵。
X = rand(
sz1,...,szN) 返回由随机数组成的 sz1
×...×szN
数组,其中 sz1,...,szN
指示每个维度的大小。例如:rand(3,4)
返回一个 3×4 的矩阵。
X = rand(
sz) 返回由随机数组成的数组,其中大小向量 sz
指定 size(X)
。例如:rand([3 4])
返回一个 3×4 的矩阵。
X = rand(___,
typename) 返回由 typename
数据类型的随机数组成的数组。typename
输入可以是 'single'
或 'double'
。您可以使用上述语法中的任何输入参数。
X = rand(___,'like',
p) 返回由 p
等随机数组成的数组;也就是与 p
同一对象类型。您可以指定 typename
或 'like'
,但不能同时指定两者。
randn
语法
X = randn
X = randn(n)
X = randn(sz1,...,szN)
X = randn(sz)
X = randn(___,typename)
X = randn(___,'like',p)
说明
X = randn
返回一个从标准正态分布中得到的随机标量。
X = randn(
n) 返回由正态分布的随机数组成的 n
×n
矩阵。
X = randn(
sz1,...,szN) 返回由随机数组成的 sz1
×...×szN
数组,其中 sz1,...,szN
指示每个维度的大小。例如:randn(3,4)
返回一个 3×4 的矩阵。
X = randn(
sz) 返回由随机数组成的数组,其中大小向量 sz
定义 size(X)
。例如:randn([3 4])
返回一个 3×4 的矩阵。
X = randn(___,
typename) 返回由 typename
数据类型的随机数组成的数组。typename
输入可以是 'single'
或 'double'
。您可以使用上述语法中的任何输入参数。
X = randn(___,'like',
p) 返回由 p
等随机数组成的数组;也就是与 p
同一对象类型。您可以指定 typename
或 'like'
,但不能同时指定两者。
randi
语法
X = randi(imax)
X = randi(imax,n)
X = randi(imax,sz1,...,szN)
X = randi(imax,sz)
X = randi(imax,classname)
X = randi(imax,n,classname)
X = randi(imax,sz1,...,szN,classname)
X = randi(imax,sz,classname)
X = randi(imax,'like',p)
X = randi(imax,n,'like',p)
X = randi(imax,sz1,...,szN,'like',p)
X = randi(imax,sz,'like',p)
X = randi([imin,imax],___)
说明
X = randi(
imax) 返回一个介于 1
和 imax
之间的伪随机整数标量。
X = randi(
imax,n
) 返回 n
×n
矩阵,其中包含从区间 [1
,imax
] 的均匀离散分布中得到的伪随机整数。
X = randi(
imax,sz1,...,szN
) 返回 sz1
×...×szN
数组,其中 sz1,...,szN
指示每个维度的大小。例如,randi(10,3,4)
返回一个由介于 1 和 10 之间的伪随机整数组成的 3×4 数组。
X = randi(
imax,sz
) 返回一个数组,其中大小向量 sz
定义 size(X)
。例如,randi(10,[3,4])
返回一个由介于 1 和 10 之间的伪随机整数组成的 3×4 数组。
X = randi(
imax,classname
) 返回一个伪随机整数,其中 classname
指定数据类型。classname
可以为 'single'
、'double'
、'int8'
、'uint8'
、'int16'
、'uint16'
、'int32'
或 'uint32'
。
X = randi(
imax,n
,classname
) 返回数据类型为 classname
的 n
×n
数组。
X = randi(
imax,sz1,...,szN
,classname
) 返回数据类型为 classname
的 sz1
×...×szN
数组。
X = randi(
imax,sz
,classname
) 返回一个数组,其中大小向量 sz
定义 size(X)
,classname
定义 class(X)
。
X = randi(
imax,'like',p
) 返回一个类如 p
的伪随机整数;即,具有相同的数据类型(类)。
X = randi(
imax,n
,'like',p
) 返回一个类如 p
的 n
×n
数组。
X = randi(
imax,sz1,...,szN
,'like',p
) 返回一个类如 p
的 sz1
×...×szN
数组。
X = randi(
imax,sz
,'like',p
) 返回一个类如 p
的数组,其中大小向量 sz
定义 size(X)
。
X = randi([
imin,imax
],___) 使用以上任何语法返回一个数组,其中包含从区间 [imin
,imax
] 的均匀离散分布中得到的整数。
randperm
语法
p = randperm(n)
p = randperm(n,k)
说明
p = randperm(n)
返回行向量,其中包含从 1 到 n
(包括二者)之间的整数随机置换。
p = randperm(n,k)
返回行向量,其中包含在 1 到 n
(包括二者)之间随机选择的 k
个唯一整数。
rng
注意:要将 rng
函数(而非 rand
或 randn
)与 'seed'
、'state'
或 'twister'
输入结合使用,请参阅有关更换阻拦的 rand 和 randn 语法的文档。
rng(seed)
使用非负整数 seed
为随机数生成函数提供种子,以使 rand
、randi
和 randn
生成可预测的数字序列。
rng('shuffle')
根据当前时间为随机数生成函数提供种子。这样,rand
、randi
和 randn
会在您每次调用 rng
时生成不同的数字序列。
'twister'
:Mersenne Twister'simdTwister'
:面向 SIMD 的快速 Mersenne Twister 算法'combRecursive'
:合并的多个递归'multFibonacci'
:乘法滞后 Fibonacci'v5uniform'
:传统 MATLAB® 5.0 均匀生成函数'v5normal'
:传统 MATLAB 5.0 正常生成函数'v4'
:传统 MATLAB 4.0 生成函数
rng('default')
将 rand
、randi
和 randn
使用的随机数生成函数的设置重置为其默认值。这样,会生成相同的随机数,就好像您重新启动了 MATLAB。默认设置是种子为 0 的 Mersenne Twister。
scurr = rng
返回 rand
、randi
和 randn
使用的随机数生成函数的当前设置。这些设置将在包含字段 'Type
'、'Seed
' 和 'State
' 的结构体 scurr
中返回。
rng(s)
将 rand
、randi
和 randn
使用的随机数生成函数的设置还原回之前用 s = rng
等命令捕获的值。
sprev = rng(...)
返回 rand
、randi
和 randn
使用的随机数生成函数的以前设置,然后更改这些设置。
示例 1 - 检索和还原生成函数设置
将当前生成函数设置保存在 s
中:
s = rng;
调用 rand
以生成随机值向量:
x = rand(1,5)x =0.8147 0.9058 0.1270 0.9134 0.6324
通过调用 rng
还原原始生成函数设置。生成一组新的随机值并验证 x
和 y
是否相等:
rng(s);
y = rand(1,5)y =0.8147 0.9058 0.1270 0.9134 0.6324
MATLAB之rand、randn、randi和randperm相关推荐
- Matlab之rand(), randn(), randi()函数的使用方法
1. rand()函数用于生成取值在(0~1)之间均匀分布的伪随机数. rand(n):生成n*n的0~1之间的满足均匀分布的伪随机矩阵: rand(m,n):生成m*n的伪随机数: rand(m, ...
- matlab函数randi,Matlab之rand(), randn(), randi()函数的使用方法
1. rand()函数用于生成取值在(0~1)之间均匀分布的伪随机数. rand(n):生成n*n的0~1之间的满足均匀分布的伪随机矩阵: rand(m,n):生成m*n的伪随机数: rand(m, ...
- 轮子——matlab中的随机数矩阵(rand randn randi 种子 normrnd randperm 对称)
在matlab中进行仿真时,经常需要对真实数据添加随机数噪声.本文内容参考内容见文末,对其进行适当总结并不定期再补充. 文章目录 rand randn randi 设定种子1 设定种子2 normrn ...
- MATLAB中rand,randi,randn函数,及rand('state',0)和rand('seed',0)产生随机种子详解
一.问题来源: 在学习matlab中看到书上有许多关于生成随机数的应用,y书上一开始会写一个rand('state',0),注释是为了方便验证,一开始并不是很理解,最近搜索网上文章等深入理解了下关于M ...
- matlab中randint函数用法,matlab中rand randn randint函数的区别
matlab中rand函数是产生0到1的随机分布 matlab中randn函数是产生标准正态分布 randint是产生整数随机数,默认为0和1 %%%%%%%%%%%rand%%%%%%%%%%%%% ...
- 【matlab】随机函数生成随机排列:rand,randn,randi,randperm,randint
1.rand() rand(n):生成0到1的均匀分布的n×n的随机数方阵 rand(m,n):生成0到1的m行n列的随机数矩阵 2.randn() randn(n)和randn(m,n)产生均值为0 ...
- MatLab中rand randi randn 三个函数的解析
MatLab中rand randi randn 三个函数的解析 1.rand 概括:生成(0,1)之间的均匀分布的伪随机数 示例1: >>rand %什么参数也没有,生成一个(0,1)的数 ...
- matlab创建随机数(randn和rand和randi)
randn和rand和randi rand生成均匀分布的伪随机数,分布在(0,1)之间,例如rand(m)生成m行m列的均匀分布的伪随机数,rand(m,n)生成m行n列的均匀分布的伪随机数,rand ...
- Matlab 没有 randint,Matlab_learning_4(rand randn randint函数 )
||matlab 中 rand 函数是产生0到1的随机分布 1>.RAND:Uniformly distributed random numbers. 标准化分布的随机数 2>.RAND( ...
最新文章
- Only POT texture can be compressed to PVRTC format
- 【Linux】23.ubuntu定时执行脚本/etc/crontab 和 定时任务不执行的解决办法
- TEA加密算法的C/C++实现
- 深度学习 点积的概念
- android Arrays.fill()的使用
- TCP/IP 笔记一
- ios模拟器的路径-打开沙盒路径
- Pytorch中的 torch.as_tensor() 和 torch.from_numpy() 的区别
- mybitsplus的idworker应java什么类型_MyBatisPlus学习整理(一)
- pcb结构链表_简单说说链表和一个应用实例
- 只安装python能干什么_你都用 Python 来做什么?
- 超融合平台安装oracle,超融合平台集成实施方案
- 构造函数和方法的区别
- python中库是什么意思_python库是什么意思
- 湄洲湾职业技术学院宿舍计算机,湄洲湾职业技术学院宿舍条件怎么样—宿舍图片内景...
- Excel VBA 巧用自定义函数进行数组去重
- cnn模型(cnn神经网络模型)
- 5D论文PMF及改进
- Js高级-函数的理解
- 直播源代码图片验证码