Matlab生成随机数的几种方法
计算机产生的随机数是由随机数生成器函数生成的伪随机数pseudorandom,一般以一个真随机数(种子)作为初始条件(如系统时间)
1,rand生成均匀分布的伪随机书,(0~1)之间
主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数
rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数可以是'single'
rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪随机数
2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)
主要语法:和上面一样
3, randi 生成均匀分布的伪随机整数
主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数
randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵
4,randsrc
无参数形式,随机输出-1或1;randsrc(m,n); randsrc(m);
5,exprnd 生成指数分布的随机数
R=exprnd(MU)
生成服从参数为MU的指数分布的随机数。输入MU与输出R的形式相同。
R=exprnd(MU,m)
生成服从参数为MU的指数分布的随机数矩阵,矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R中行与列的维数。
R=exprnd(MU,m,n)
生成m×n形式的指数分布的随机数矩阵。
6,稳定重启的rng分布
如何让每次程序运行生成的随机数都一样,主要借助的是rng函数,格式如下:
rng('default');
R = rand(1,5); % 每次程序运行生成恒定的1×5随机数
此外还有生成同样分布的表达方式:
s = rng;
R1 = rand(1,5);
rng(s);
R2 = rand(1,5); % R1和R2随机数一样
参考原文1:https://www.cnblogs.com/sddai/p/5406182.html
参考原文2:https://blog.csdn.net/qq278672818/article/details/62038537
参考原文3:https://blog.csdn.net/fx677588/article/details/72811673