随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
产生均匀分布的随机数或数组
语法
Y = rand(n)
Y = rand(m,n)
Y = rand([m n])
Y = rand(m,n,p,...)
Y = rand([m n p...])
Y = rand(size(A))
rand
s = rand('state')
描述
rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。
Y = rand(n) 返回一个n x n的随机矩阵。如果n不是标量,则返回错误信息。
Y = rand(m,n) or Y = rand([m n]) 返回一个m x n的随机矩阵。
Y = rand(m,n,p,...) or Y = rand([m n p...]) 产生随机数组。
Y = rand(size(A)) 返回一个和A有相同尺寸的随机数组。
rand,通过它自己,返回一个标量,这个标量在该函数每次被调用时都会发生改变。
s = rand('state') 返回一个有35个元素的包含均匀分布产生者状态的vector。
改变产生者的状态:
rand('state',s) 重置状态为s
rand('state',0) 重置为初始状态
rand('state',j) 对于整数j,重置产生者为第j个的状态
rand('state',sum(100*clock)) 每次重置它为一个不同的状态
示例
1、R = rand(3,4) 可能产生
R =
0.2190 0.6793 0.5194 0.0535
0.0470 0.9347 0.8310 0.5297
0.6789 0.3835 0.0346 0.6711
下面代码将在相等可能性之间做出随机选择:
if rand < .5
'heads'
else
'tails'
end
2、在区间[a,b]产生均匀分布的随机数。为了达到这个目的,我们可以这样:对(b-a)使用rand,然后再加上a.例如,在区间[10,50]产生一个5x5的随机数组:
a = 10; b = 50;
x = a + (b-a) * rand(5)
x =
18.1106 10.6110 26.7460 43.5247 30.1125
17.9489 39.8714 43.8489 10.7856 38.3789
34.1517 27.8039 31.0061 37.2511 27.1557
20.8875 47.2726 18.1059 25.1792 22.1847
17.9526 28.6398 36.8855 43.2718 17.5861