matlab的随机数生成函数
rand 生成均匀分布的伪随机数,分布在0~1之间
randn 生成标准正态分布的伪随机数,均值为0,方差为1
- rand(m,n)生成m行n列的均匀分布的伪随机数
- rand(RandStream,m,n)利用指定的RandStream(可认为是随机种子)控制伪随机数
randi 生成均匀分布的伪随机整数
- randi([iMin,iMax],m,n)在(iMin,iMax)生成mxn随机矩阵
伪随机数的重复生成,关于随机种子
matlab的rand虽然生成的是伪随机数,但每次生成结果也是不同的,
想要做重复性实验,matlab文档的Managing the Default Stream(管理默认流)章节讲到,
rand, randn, and randi draw random numbers from anunderlying random number stream, called the default stream. The @RandStream class allows you to get a handle to the default streamand control random number generation.
也就是说,rand,randn和randi从一个基础的随机数流中得到随机数,称作默认流。
①通过RandStream类得到默认流的句柄从而控制随机数的生成。