MatLab函数rand、randi、randn、rng

【注】详情请参阅 MatLab help 文档

1. rand 函数

1.1 作用

rand 函数用于生成在区间 (0,1) 均匀分布的随机数。

1.2 语法

1
2
3
4
5
6
X = rand    % 返回一个均匀分布的随机数
X = rand(n) % 返回一个均匀分布的随机数矩阵(n x n)
X = rand(sz1,...,szN) % 返回由均匀分布的随机数组成的 sz1 x ... x szN 矩阵,其中 sz1,...,szN 依次为各维度大小
X = rand(sz) % 返回由均匀分布随机数组成大小由向量 sz 指定的随机数矩阵(矩阵大小 size(X) = sz)
X = rand(___,typename) % 在以上语法基础上,指定数据类型 typename(取值为 'single'|'double') 的均匀分布随机数
X = rand(___,'like',p) % 在以上语法基础上,指定随机数数据类型同数值数组 p 的数据类型(不能与 typename 同时使用)

2. randi 函数

2.1 作用

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

2.2 语法

1
2
3
4
5
6
7
8
9
10
11
12
13
X = randi(imax) % 返回一个在区间 [1,imax] 间的伪随机数整数标量
X = randi(imax,n) % 返回一个在区间 [1,imax] 间的伪随机数整数矩阵(n x n)
X = randi(imax,sz1,...,szN) % 返回一个在区间 [1,imax] 间的伪随机数整数矩阵(sz1 x ... x szN)
X = randi(imax,sz) % 返回一个一个在区间 [1,imax] 间的伪随机数整数矩阵(size(X) = sz)
X = randi(imax,classname) % 返回数据类型为 classname('single'|'double'|'int8'|'uint8'|'int16'|'uint16'|'int32'|'uint32')的伪随机整数
X = randi(imax,n,classname) % 返回数据类型为 classname 的伪随机整数矩阵(n x n)
X = randi(imax,sz1,...,szN,classname) % 返回数据类型为 classname 的伪随机整数矩阵(sz1 x ... x szN)
X = randi(iamx,sz,classname) % 返回数据类型为 classname 的伪随机整数矩阵(size(X) = sz)
X = randi(imax,'like',p) % 返回一个和 p 具有相同数据类型的伪随机整数
X = randi(imax,n,'like',p) % 返回一个和 p 具有相同数据类型的伪随机数矩阵(n x n)
X = randi(imax,sz1,...,szN,'like',p) % 返回一个和 p 具有相同数据类型的伪随机数矩阵(sz1 x ... x szN)
X = randi(imax,sz,'like',p) % 返回一个和 p 具有相同数据类型的伪随机数矩阵(size(X) = sz)
X = randi([imin,imax],___) % 使用以上任一语法,返回在区间 [imin,imax] 内的伪随机整数

3. randn 函数

3.1 作用

randn 函数用于生成标准正态分布的随机数。

3.2 语法

1
2
3
4
5
6
X = randn   % 返回一个标准正态分布的随机数标量
X = randn(n) % 返回由标准正态分布的随机数矩阵(n x n)
X = randn(sz1,...,szN) % 返回由标准正态分布的随机数矩阵(sz1 x ... x szN)
X = randn(sz) % 返回由标准正态分布的随机数矩阵(size(X) = sz)
X = randn(___,typename) % 在上述语法基础上,指定随机数的数据类型 typename('single'|'double')
X = randn(___,'like',p) % 在上述语法基础上,指定随机数的数据类型同 p 的数据类型(不能与 typename 同时使用)

4. rng 函数

4.1 作用

rng 函数用于控制随机数生成函数(rand、randi、randn)生成随机数。

4.2 语法

1
2
3
4
5
6
7
8
rng(seed)   % 使用非负整数 seed 为随机数生成函数(rand、randi、randn)提供种子。
rng('shuffle') % 根据当前时间为随机数生成函数提供种子
rng(seed,generator) % 在上述语法基础上指定随机数生成函数(rand、randi、randn)的随机数生成类型
rng('shuffle',generator) % 在上述语法基础上指定随机数生成函数(rand、randi、randn)的随机数生成类型
rng('default') % 将随机数生成函数(rand、randi、randn)的设置重置为默认值(seed = 0,generator = 'simdTwister')
scurr = rng % 返回随即上生成函数(rand、randi、randn)的当前设置
rng(s) % 将随机数生成函数设置还原回变量 s 指定的设置(s 为先前使用 s = rng 捕获的设置)
sprev = rng(___) % 在上述语法的基础上,先返回随机数生成函数的当前设置,再进行设置的修改
  • generator 的可选值如下表:
generator 取值 说明
'twister' Mersenne Twister
'simdTwister' 面向 SIMD 的快速 Mersenne Twister 算法
'combRecursive' 合并的多个递归
'multFibonacci' 乘法滞后 Fibonacci
'v5uniform' 传统 MatLab 5.0 均匀生成函数
'v5normal' 传统 MatLab 5.0 正常生成函数
'v4' 传统 MatLab 4.0 生成函数

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!