概述
1.一些常用函数:
(1)rand(······)
它是生成0~1之间(开环,不包含0和1两个数)均匀分布的伪随机数,也就是无穷次试验其中每个数产生的概率是一样的。
R = rand(N) % 生成N×N的矩阵随机数,其中每个元素位于0~1之间
R = rand([M,N,P,…]) % 生成M×N×P×…的矩阵随机数
R = rand(M,N,P,…) % 同上,中括号不是必须
R = rand(…, CLASSNAME) % 生成CLASSNAME类型的随机数,如 ‘double’ or ‘single’
(2)randi(······)
randi(N) 是生成(0,N]间均匀分布的伪随机数,并且数都是整数,所以每个数是位于1到N之间。
R = randi(iMax) % 生成1:iMax之间的均匀分布随机数
R = randi(iMax,m,n) % 生成m×n的1:iMax之间的均匀分布随机数
R = randi([iMin,iMax],m,n) % 生成m×n的iMin:iMax之间的均匀分布随机数
(3)randn(······)
它生成的随机数整体概率为正态分布,均值为0,方差为1;
R = randn(N) % 生成N×N个正态分布的随机数
R = randn(M,N) % 生成M×N个正态分布的随机数
eg:产生16个均值为0.8,方差为0.4的正态分布随机数(即:4阶正态分布矩阵)。
format short %恢复默认输出格式
y=0.8+sqrt(0.4)*randn(4)
(4)rng(······)
让每次程序运行生成的随机数都一样
eg(1).rng('default');
R = rand(1,5); % 每次程序运行生成恒定的1×5随机数
eg(2).s = rng;
R1 = rand(1,5);
rng(s);
R2 = rand(1,5); % R1和R2随机数一样
(5)linspace(······)
产生线性间隔向量
创建一个从a到b,共n个向量
linspace(a,b,n);
(6)binornd(n,p,[M,N,P,…])
生成的随机数服从参数为(N,p)的二项分布,这些随机数排列成MNP… 阶矩阵。如果只写M,则生成M*M矩阵
(7)exprnd(MU)
服从参数为MU的指数分布。
2.其他生成随机数函数
exprnd 指数分布的随机数生成器
exprnd(mu,m,n); 在(0,mu)之间有接近70%的数据,越接近0数据越多
geornd 几何分布的随机数生成器
geornd(P,M,N,…) returns an M-by-N-by-… array.
hygernd 超几何分布的随机数生成器
hygernd(M,K,N,MM,NN,…) returns an MM-by-NN-by-… array.
normrnd 正态(高斯)分布的随机数生成器
normrnd(MU,SIGMA,M,N,…) returns an M-by-N-by-… array.
poissrnd 泊松分布的随机数生成器
poissrnd(LAMBDA,M,N,…) returns an M-by-N-by-… array.
unidrnd 离散均匀分布的随机数生成器
unifrnd 连续均匀分布的随机数生成器
betarnd 贝塔分布的随机数生成器
chi2rnd 卡方分布的随机数生成器
frnd f分布的随机数生成器
gamrnd 伽玛分布的随机数生成器
lognrnd 对数正态分布的随机数生成器
nbinrnd 负二项分布的随机数生成器
ncfrnd 非中心f分布的随机数生成器
nctrnd 非中心t分布的随机数生成器
ncx2rnd 非中心卡方分布的随机数生成器
raylrnd 瑞利分布的随机数生成器
trnd 学生氏t分布的随机数生成器
weibrnd 威布尔分布的随机数生成器
如果要生成除上面这些之外的随机数,需要严密的数学推导,利用这些分布进行构造.
如果推导不出,还可以利用大数定律进行生成,通过一组随机数确定一个随机数的方式。
最后
以上就是顺利老师为你收集整理的Matlab产生随机数函数小结的全部内容,希望文章能够帮你解决Matlab产生随机数函数小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复