(一)Matlab内部函数
a. 基本随机数
Matlab中有两个最基本生成随机数的函数。
1.rand()
生成(0,1)区间上均匀分布的随机变量。基本语法:
rand([M,N,P …])
生成排列成MNP… 多维向量的随机数。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
rand(5,1) %生成5个随机数排列的列向量,一般用这种格式
rand(5) %生成5行5列的随机数矩阵
rand([5,4]) %生成一个5行4列的随机数矩阵
生成的随机数大致的分布。
x=rand(100000,1);
hist(x,30);
由此可以看到生成的随机数很符合均匀分布。(视频教程会略提及hist()函数的作用)
2.randn()
生成服从标准正态分布(均值为0,方差为1)的随机数。基本语法和rand()类似。
randn([M,N,P …])
生成排列成M
NP… 多维向量的随机数。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
randn(5,1) %生成5个随机数排列的列向量,一般用这种格式
randn(5) %生成5行5列的随机数矩阵
randn([5,4]) %生成一个5行4列的随机数矩阵
生成的随机数大致的分布。
x=randn(100000,1);
hist(x,50);
由图可以看到生成的随机数很符合标准正态分布。
b. 连续型分布随机数
如果你安装了统计工具箱(Statistic Toolbox),除了这两种基本分布外,还可以用Matlab内部函数生成符合下面这些分布的随机数。
3.unifrnd()
和rand()类似,这个函数生成某个区间内均匀分布的随机数。基本语法
unifrnd(a,b,[M,N,P,…])
生成的随机数区间在(a,b)内,排列成MNP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
unifrnd(-2,3,5,1) %生成5个随机数排列的列向量,一般用这种格式
unifrnd(-2,3,5) %生成5行5列的随机数矩阵
unifrnd(-2,3,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数都在(-2,3)区间内.
生成的随机数大致的分布。
x=unifrnd(-2,3,100000,1);
hist(x,50);
由图可以看到生成的随机数很符合区间(-2,3)上面的均匀分布。
4.normrnd()
和randn()类似,此函数生成指定均值、标准差的正态分布的随机数。基本语法
normrnd(mu,sigma,[M,N,P,…])
生成的随机数服从均值为mu,标准差为sigma(注意标准差是正数)正态分布,这些随机数排列成M
NP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
normrnd(2,3,5,1) %生成5个随机数排列的列向量,一般用这种格式
normrnd(2,3,5) %生成5行5列的随机数矩阵
normrnd(2,3,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的正态分布都是均值为2,标准差为3.
生成的随机数大致的分布。
x=normrnd(2,3,100000,1);
hist(x,50);

如图,上半部分是由上一行语句生成的均值为2,标准差为3的10万个随机数的大致分布,下半部分是用小节“randn()”中最后那段语句生成10万个标准正态分布随机数的大致分布。
注意到上半个图像的对称轴向正方向偏移(准确说移动到x=2处),这是由于均值为2的结果。
而且,由于标准差是3,比标准正态分布的标准差(1)要高,所以上半部分图形更胖(注意x轴刻度的不同)。
5.chi2rnd()
此函数生成服从卡方(Chi-square)分布的随机数。卡方分布只有一个参数:自由度v。基本语法
chi2rnd(v,[M,N,P,…])
生成的随机数服从自由度为v的卡方分布,这些随机数排列成MNP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
chi2rnd(5,5,1) %生成5个随机数排列的列向量,一般用这种格式
chi2rnd(5,5) %生成5行5列的随机数矩阵
chi2rnd(5,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的卡方分布的自由度都是5
生成的随机数大致的分布。
x=chi2rnd(5,100000,1);
hist(x,50);
6.frnd()
此函数生成服从F分布的随机数。F分布有2个参数:v1, v2。基本语法
frnd(v1,v2,[M,N,P,…])
生成的随机数服从参数为(v1,v2)的卡方分布,这些随机数排列成M
NP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
frnd(3,5,5,1) %生成5个随机数排列的列向量,一般用这种格式
frnd(3,5,5) %生成5行5列的随机数矩阵
frnd(3,5,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(v1=3,v2=5)的F分布
生成的随机数大致的分布。
x=frnd(3,5,100000,1);
hist(x,50);
从结果可以看出来, F分布集中在x正半轴的左侧,但是它在极端值处也很可能有一些取值。
7.trnd()
此函数生成服从t(Student’s t Distribution,这里Student不是学生的意思,而是Cosset.W.S.的笔名)分布的随机数。t分布有1个参数:自由度v。基本语法
trnd(v,[M,N,P,…])
生成的随机数服从参数为v的t分布,这些随机数排列成MNP… 多维向量。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
trnd(7,5,1) %生成5个随机数排列的列向量,一般用这种格式
trnd(7,5) %生成5行5列的随机数矩阵
trnd(7,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(v=7)的t分布
生成的随机数大致的分布。
x=trnd(7,100000,1);
hist(x,50);
可以发现t分布比标准正太分布要“瘦”,不过随着自由度v的增大,t分布会逐渐变胖,当自由度为正无穷时,它就变成标准正态分布了。
接下来的分布相对没有这么常用,同时这些函数的语法和前面函数语法相同,所以写得就简略一些——在视频中也不会讲述,你只需按照前面那几个分布的语法套用即可,应该不会有任何困难——时间足够的话这是一个不错的练习机会。
8.betarnd()
此函数生成服从Beta分布的随机数。Beta分布有两个参数分别是A和B。下图是A=2,B=5 的beta分布的PDF图形。

生成beta分布随机数的语法是:
betarnd(A,B,[M,N,P,…])
9.exprnd()
此函数生成服从指数分布的随机数。指数分布只有一个参数: mu, 下图是mu=3时指数分布的PDF图形

生成指数分布随机数的语法是:
betarnd(mu,[M,N,P,…])
10.gamrnd()
生成服从Gamma分布的随机数。Gamma分布有两个参数:A和B。下图是A=2,B=5 Gamma分布的PDF图形

生成Gamma分布随机数的语法是:
gamrnd(A,B,[M,N,P,…])
11.lognrnd()
生成服从对数正态分布的随机数。其有两个参数:mu和sigma,服从这个这样的随机数取对数后就服从均值为mu,标准差为sigma的正态分布。下图是mu=-1, sigma=1/1.2的对数正态分布的PDF图形。

生成对数正态分布随机数的语法是:
lognrnd(mu,sigma,[M,N,P,…])
12.raylrnd()
生成服从瑞利(Rayleigh)分布的随机数。其分布有1个参数:B。下图是B=2的瑞利分布的PDF图形。
生成瑞利分布随机数的语法是:
raylrnd(B,[M,N,P,…])
13.wblrnd()
生成服从威布尔(Weibull)分布的随机数。其分布有2个参数:scale 参数 A和shape 参数 B。下图是A=3,B=2的Weibull分布的PDF图形。

生成Weibull分布随机数的语法是:
wblrnd(A,B,[M,N,P,…])
还有非中心卡方分布(ncx2rnd),非中心F分布(ncfrnd),非中心t分布(nctrnd),括号中是生成服从这些分布的函数,具体用法用:
help 函数名
查找。
c. 离散型分布随机数
离散分布的随机数可能的取值是离散的,一般是整数。
14.unidrnd()
此函数生成服从离散均匀分布的随机数。Unifrnd是在某个区间内均匀选取实数(可为小数或整数),Unidrnd是均匀选取整数随机数。离散均匀分布随机数有1个参数:n, 表示从{1, 2, 3, … N}这n个整数中以相同的概率抽样。基本语法:
unidrnd(n,[M,N,P,…])
这些随机数排列成MNP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
unidrnd(5,5,1) %生成5个随机数排列的列向量,一般用这种格式
unidrnd(5,5) %生成5行5列的随机数矩阵
unidrnd(5,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(10,0.3)的二项分布
生成的随机数大致的分布。
x=unidrnd(9,100000,1);
hist(x,9);
可见,每个整数的取值可能性基本相同。
15.binornd()
此函数生成服从二项分布的随机数。二项分布有2个参数:n,p。考虑一个打靶的例子,每枪命中率为p,共射击N枪,那么一共击中的次数就服从参数为(N,p)的二项分布。注意p要小于等于1且非负,N要为整数。基本语法:
binornd(n,p,[M,N,P,…])
生成的随机数服从参数为(N,p)的二项分布,这些随机数排列成M
NP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
binornd(10,0.3,5,1) %生成5个随机数排列的列向量,一般用这种格式
binornd(10,0.3,5) %生成5行5列的随机数矩阵
binornd(10,0.3,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(10,0.3)的二项分布
生成的随机数大致的分布。
x=binornd(10,0.45,100000,1);
hist(x,11);
我们可以将此直方图解释为,假设每枪射击命中率为0.45,每论射击10次,共进行10万轮,这个图就表示这10万轮每轮命中成绩可能的一种情况。
16.geornd()
此函数生成服从几何分布的随机数。几何分布的参数只有一个:p。几何分布的现实意义可以解释为,打靶命中率为p,不断地打靶,直到第一次命中目标时没有击中次数之和。注意p是概率,所以要小于等于1且非负。基本语法:
geornd(p,[M,N,P,…])
这些随机数排列成MNP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
geornd(0.4,5,1) %生成5个随机数排列的列向量,一般用这种格式
geornd(0.4,5) %生成5行5列的随机数矩阵
geornd(0.4,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(0.4)的二项分布
生成的随机数大致的分布。
x=geornd(0.4,100000,1);
hist(x,50);
17.poissrnd()
此函数生成服从泊松(Poisson)分布的随机数。泊松分布的参数只有一个:lambda。此参数要大于零。基本语法:
geornd(p,[M,N,P,…])
这些随机数排列成M
NP… 多维向量。如果只写M,则生成MM矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
poissrnd(2,5,1) %生成5个随机数排列的列向量,一般用这种格式
poissrnd(2,5) %生成5行5列的随机数矩阵
poissrnd(2,[5,4]) %生成一个5行4列的随机数矩阵
%注:上述语句生成的随机数所服从的参数为(2)的泊松分布
生成的随机数大致的分布。
x=poissrnd(2,100000,1);
hist(x,50);
其他离散分布还有超几何分布(Hyper-geometric, 函数是hygernd)等,详细见Matlab帮助文档。

matlab 全部的随机数函数相关推荐

  1. matlab里的随机数函数,MATLAB中常用的产生随机数的几种函数

    1.rand函数 rand函数用于产生在区间[0, 1]的均匀随机数,它是平均分布在[0,1]之间.一个称为seed的值则是用来控制产生随机数的次数.均匀随机数函数的语法为rand(n),rand(m ...

  2. 【转】利用matlab生成随机数函数

    原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵 rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成器 ...

  3. 生成介于0.95-1的随机数MATLAB,matlab生成随机数函数

    matlab生成随机数函数 1. MA TLAB 函数 rand 产生在区间 (0, 1)的均匀随机数,它是平均分布在 (0,1)之间.一个称为seed的值则是用来控制产生随机数的次数.均匀随机数函数 ...

  4. matlab seed函数_如何用matlab生成随机数函数_matlab随机数生成函数

    如何用matlab生成随机数函数 1. MATLAB 函数 rand 产生在区间 (0, 1)的均匀随机数,它是平均分布在 (0,1)之间.一个称为seed的值则是用来控制产生随机数的次数.均匀随机数 ...

  5. MATLAB随机数函数

    虽然matlab中提供了几个随机数函数,但一些情况下(如需要在-1到1中产生随机数)用matlab中自带的随机函数无法直接达到想要的效果.那么我们不如自己写一个函数出来用,在matlab中我们只要创建 ...

  6. 【MATLAB】数据类型 ( 矩阵 | 随机数函数 | 生成矩阵 )

    文章目录 一.矩阵 1.定义矩阵 2.转置矩阵 3.矩阵放到一列 4.逆矩阵 二.随机数函数 1.rand 随机数函数 2.randn 随机数函数 3.randi 随机数函数 三.生成矩阵 1.生成 ...

  7. 绘制卡方分布的概率密度函数 matlab,MATLAB如何使用chi2pdf函数计算卡方分布的概率密度...

    MATLAB如何使用chi2pdf函数计算卡方分布的概率密度 [语法说明] Y=chi2pdf(X,V):函数计算X中的元素在参数V指定的卡方分布下的概率密度函数值.如果输入参数中有一个为标量,则将其 ...

  8. matlab卡方分布函数,MATLAB如何使用ncx2pdf函数计算非中心卡方分布的概率密度

    MATLAB如何使用ncx2pdf函数计算非中心卡方分布的概率密度 [语法说明] Y=ncx2pdf(X,V,DELTA):计算X中各元素在参数V.DELTA指定下的非中心卡方分布概率密度函数值.X与 ...

  9. MATLAB常用命令及函数大全(字母顺序)

    花了些时间把MATLAB的命令以及函数按照字母顺序列了一个清单,供大家参考.               A a       abs 绝对值.模.字符的ASCII码值        acos 反余弦  ...

最新文章

  1. FreeBSD设备驱动管理介绍(BSP: Ti AM335x)
  2. CPU执行指令过程与python
  3. TCP/IP详解--第二章
  4. SAP实施要重视用户体验
  5. 让 CentOS 启动时不启动桌面服务
  6. Qt creator5.7 OpenCV249之pyrDown函数(含源码下载)
  7. day①:py流程控制
  8. win10英文系统一键装机教程
  9. 毕设题目:Matlab DTMF双音多频
  10. cocos2dx基础篇(14)——基本绘图DrawPrimitives
  11. 蓝桥02 等差素数列 ——数论知识
  12. Sqli-Lab实验环境搭建(phpstudy环境安装、火狐浏览器插件安装、sqlmap安装、Sqli-Lab安装)
  13. linux 汇编 变址寻址,【计组】偏移地址、段地址和寻址方式
  14. 每日古文--邹忌讽齐王纳谏
  15. P2627 [USACO11OPEN]Mowing the Lawn G
  16. JavaScript计算圆周率(解析几何+定积分)
  17. 【研究日记】虚拟歌姬自动调教之歌曲音频切割的问题
  18. vue3 使用element表格导出excel表格(带图片)
  19. 09组团队项目-Alpha冲刺-2/6
  20. 测一测自己的Sql能力之MYSQL的GROUPBY你弄懂了吗?

热门文章

  1. 【hiho挑战赛24 ABC】贪心和期望dp惨烈的后缀自动机
  2. 【BZOJ4515】游戏,树链剖分+永久化标记线段树维护线段信息(李超线段树)
  3. java绘画imo,搞死帮忙看下这个:需要为class interface或enum imort java.ut
  4. 李群与李代数2:李代数求导和李群扰动模型
  5. Unity3DAI:寻路(1):A星寻路,在Unity上用C#代码实现。
  6. 1w用户的并发量多大_QQ邮件订阅中心下线:卢松松博客曾经有1W多订阅用户
  7. 学习了下简单的光照模型
  8. windows 开启/关闭本地连接的批处理程序
  9. jquery js 兄弟父元素的获取
  10. Zookeeper安装,Zookeeper单机模式安装