随机数生成方法

rand语句

产生在区间 **(0, 1)**的均匀随机数,它是平均分布在 **(0,1)**之间。

Y=rand(n)返回一个n*n的随机矩阵。如果n不是数量,则返回错误信息
Y=rand(m,n)或Y=rand([m n])返回一个m*n的随机矩阵
Y=rand(m,n,p,…)或Y=rand([m n p …])产生随机数组。例如rand(2,3,4)返回四个2*3的数组
Y = rand(size(A))返回一个和A有相同尺寸的随机矩阵

其中,seed 用来控制 rand, 如果没有设置seed,每次运行rand产生的随机数都是不一样的。用了seed,比如设置rand(‘seed’,0),那么每次运行rand产生的随机数是一样的,这样对调试程序很有帮助

如果需要产生随机数值不是介于[0,1]区间,可以采用以下步骤将随机数值从[0,1]区间转换到其它区间。例如区间为[a,b],a为下限值,b为上限值。则算式:*x=(b-a)r + a

例:用rand函数随机取100个从-1到1的数

​ x =(1-(-1))rand(1,100) +(– 1)

​ x = rand(1,100) * 2 – 1

random语句

y = random(‘分布的英文’,A1,A2,A3,m,n),表示生成 m 行 n 列的 m × n 个参数为 ( A1 , A2 , A3 ) 的该分布的随机数。

例:R = random(‘Normal’,0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态随机数

​ R = random(‘Poisson’,1:6,1,6): 依次生成参数为 1到6的(1行6 列)6 个Poisson随机数

正态随机数生成normmd语句

R = normrnd(MU,SIGMA)生成均值为 MU,标准差为 SIGMA 的正态随机数
R = normrnd(MU,SIGMA,m)生成 1× m 个正态随机数
R = normrnd(MU,SIGMA,m,n)生成 m 行 n 列的 m × n 个正态随机数

例:R = normrnd([1 2 3;4 5 6],0.1,2,3)生成期望依次为[1,2,3;4,5,6], 方差为 0.1 的 2× 3 个正态随机数.

对数正态分布随机数生成lognrnd语句

R = lognrnd(MU,SIGMA) 
R = lognrnd(MU,SIGMA,m) 
R = lognrnd(MU,SIGMA,m,n

Poisson分布随机数生成poissrnd语句

R = poissrnd(lambda)   
R = poissrnd(lambda,m)  
R = poissrnd(lambda,m,n)

Rayleigh分布随机数生成raylrnd语句

R = raylrnd(B)    
R = raylrnd(B,m)   
R = raylrnd(B,m,n)

离散的均匀随机数生成unidrnd语句

R = unidrnd(N)   
R = unidrnd(N,m)  
R = unidrnd(N,m,n)

[A,B]上均匀随机数生成unifrnd语句

R = unifrnd(A,B)   
R = unifrnd(A,B,m)  
R = unifrnd(A,B,m,n)

特殊分布语句

betarnd 贝塔分布的随机数生成器

binornd 二项分布的随机数生成器

chi2rnd 卡方分布的随机数生成器

exprnd 指数分布的随机数生成器

frnd f分布的随机数生成器

gamrnd 伽玛分布的随机数生成器

geornd 几何分布的随机数生成器

hygernd 超几何分布的随机数生成器

lognrnd 对数正态分布的随机数生成器

nbinrnd 负二项分布的随机数生成器

更多推荐

matlab随机数生成方法