matlab常见分布的分布函数的命令,Matlab统计⼯具箱中各类
概率分布函数使⽤⽅法介绍...
本帖最后由 winner245 于 2013-4-24 22:47 编辑
1. Matlab Statistics Toolbox 中概率分布函数介绍
Matlab Statistics Toolbox 提供了对⼏乎所有概率分布的⽀持,可以⽅便产⽣服从各类分布的随机数及其PDF/CDF函数。其中,既提供了针对所有分布的通⽤分布函数,其参数是指定的特定分布;也提供了针对特定分布的专⽤分布函数,其函数名直接针对某种特定分布,故该函数的⽆需再提供分布特性参数。
常⽤的通⽤分布函数如下:
1) pdf:⽤于⽣成各类概率分布的PDF
2) cdf:⽤于⽣成各类概率分布的CDF
3) icdf:⽤于⽣成各类概率分布的inverse CDF
4) random:⽤于⽣成各类概率分布的随机数
5) fitdist:⽤于⽣成各类概率分布拟合给定随机数据的统计参数(如均值、⽅差)
常⽤的专⽤分布函数如下:(*表⽰通配符,⽤于指定特定分布)
1) *pdf:⽣成特定的*概率分布的PDF
2) *cdf:⽣成特定的*概率分布的CDF
3) *inv:⽣成特定的*概率分布的inverseCDF
4) *rnd:⽣成特定的*概率分布的随机数
5) *fit:⽣成特定的*概率分布拟合给定随机数据的统计参数
6) *stat:得到特定的*概率分布的统计参数
2. 分布函数调⽤举例
通⽤分布函数举例:
Y = pdf(name,X,A) computes the PDF for theone-parameter family of distributions specified by name.
A contains parametervalues for the distribution. Densities are evaluated at the values in X andreturned in Y.
Y = cdf(name,X,A)computes the CDF for theone-parameter family of distributions specified by name. A contains parametervalues for the distribution. The CDF is evaluated at the values in X and its valuesare returned in Y.
Y = icdf(name,X,A) computes the inverse CDF for theone-parameter family of distributions specified by name. Parameter values forthe distribution are given in A. The inverse CDF is evaluated at the values inX and its values are returned in Y.
Y = random(name,A,m,n):Generate random numbers Y (ofm rows and n columns) from the one-parameter family of distributions specifiedby name. Parameter values for the distribution are given in A.
PD = fitdist(X, name) fits the probabilitydistribution specified by name to the data in the column vector X, and returnsPD, an object representing the fitted distribution.
A指定描述分布的统计参数(如均值、⽅差),name指定概率分布类型。例如:name为'norm' or 'Normal'表⽰Gaussian分布,name
为'rayl' or 'Rayleigh'表⽰Rayleigh分布,name为'rician'表⽰Rician分布,name为'nakagami'表⽰Nakagami-m分布。Matlab统计⼯具箱⼏乎⽀持所有的分布,具体查看统计⼯具箱。
专⽤分布函数举例:
1). *pdf:normpdf, raylpdf,exppdf, gampdf, betapdf得到Gaussian, Rayleigh, Exponential, Gamma, Beta的PDF函数。(Rician 和Nakagami-m没有专⽤分布函数,所以,其PDF只能⽤通⽤函数pdf指定name为’rician’或’nakagami’得到)
2). *cdf: normcdf, raylcdf,expcdf, gamcdf, betacdf得到Gaussian, Rayleigh, Exponential, Gamma, Beta 的CDF函数。(Rician 和Nakagami-m没有专⽤分布函数,所以,其CDF只能⽤通⽤函数cdf指定name为’rician’或’nakagami’得到)
3). *inv: norminv, raylinv,expinv, gaminv, betainv得到Gaussian, Rayleigh, Exponential, Gamma, Beta 的inverse CDF函数。(Rician和Nakagami-m没有专⽤inverseCDF函数,所以,其inverse CDF只能⽤通⽤函数icdf指定name为’rician’或’nakagami’得到)
4). *rnd:normrnd, raylrnd, exprnd, gamrnd,betarnd得到Gaussian, Rayleigh, Exponential, Gamma, Beta分布的随机数据。(Rician和Nakagami-m没有专⽤的函数,所以,对应的随机数只能⽤通⽤函数random指定name为’rician’或’nakagami’得到)
tool工具箱5). *fit:normfit, raylfit,expfit, gamfit, betafit得到Gaussian, Rayleigh, Exponential, Gamma, Beta分布的拟合结果。(Rician和Nakagami-m没有专⽤的函数,所以,对应的拟合只能⽤通⽤函数fitdist指定name为’rician’或’nakagami’得到)
6). *stat:normstat, raylstat,expstat, gamstat, betastat得到Gaussian, Rayleigh, Exponential, Gamma, Beta分布统计参数。(Rician和Nakagami-m没有专⽤的函数也⽆通⽤函数,故⽆法通过调⽤系统函数得到其统计参数)
3. ⽆线通信系统中的应⽤
可⽤于产⽣服从各类分布的伪随机数。例如,在通信系统中,经常需要对⽆线信道进⾏仿真。尤其是需要对Rayleigh、Rician、Nakagami-m、log-normal、Weibull等信道进⾏仿真,此时,可利⽤Matlab Statistics Toolbox来⽅便地产⽣各类信道。例如,可以通过调⽤random(’nakagami’,A,m,n) 产⽣⼀个m⾏n列的MIMO Nakagami-m信道,其参数由A指定。另外,通信系统中往往伴随各类分布的噪声,最常见的是⾼斯噪声,有时还会遇到⾮⾼斯的特定分布,此时,此⼯具箱中的函数可以⽅便的⽤于产⽣服从各类分布的随机噪声。
4. 总结
如果⽆需调⽤Toolbox的情况下,Matlab内置(built-in)函数(如randn)就可以实现功能,就优先使⽤Matlab内置函数,不要使⽤Toolbox中的函数。因为Matlab内置函数具备较⾼的效率,⽽Toolbox中的函数在程序⼊⼝处往往设置许多分⽀判断,降低了程序效率。除⾮是Matlab内置函数⽆法完成的功能,才使⽤Toolbox中的函数。例如,Matlab内置函数randn可以得到Gaussian分布随机数,故⽆需使⽤Toolbox中的random或者normrnd来⽣成Gaussian分布随机数。但是Matlab没有提供⽣成Nakagami-m随机数的内置函数,此时,只能通过Toolbox中的random来⽣成Nakagami-m随机数。
当使⽤Matlab Statistics Toolbox时,优先使⽤上述的专⽤函数,⽽⾮通⽤函数,因为通⽤函数为使程序具有较好的通⽤性,在程序⼊⼝处增加了很多条件分⽀判断,降低了程序效率,⽽专⽤函数则直接执⾏针对特定分布的操作,故具备更⾼的效率。事实上,输⼊editrandom后,会发现random.m的实现也是通过switch ….. case ….. 来判断需要调⽤特定的专⽤函数,例如当random函数的name参数设置为’normal’时,实际上会调⽤normrnd函数。对于没有专⽤函数的,如Nakagami-m和Rician,则不会调⽤专⽤函数,⽽是通过random内部模块实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论