【注】详情请参阅 MatLab help 文档。
1. rand 函数
1.1 作用
rand 函数用于生成在区间 (0,1) 均匀分布的随机数。
1.2 语法
代码语言:javascript复制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 语法
代码语言:javascript复制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 语法
代码语言:javascript复制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 语法
代码语言:javascript复制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 生成函数 |