随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(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


 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐