matlab是否直接有正态分布的计算?

来源:百度知道 编辑:UC知道 时间:2024/08/25 00:54:27
从前面一位朋友提供的网站上找到用程序计算正态分布的方法如下:

function zfenbu(x)
{ var sign=1;
if (x<0.0) {sign=-1; x=Math.abs(x);}
if (x>5.0) x=5.0 ;
var n=0; var sum=0.0;var contr=0.0;contr=Math.pow(x,2*n+1)/(Math.pow(2.0,n)*(2*n+1)*Multip(n));
sum+=((n%2==0)?1:-1)*contr;
while(contr>0.000001)
{ n++;contr=Math.pow(x,2*n + 1)/(Math.pow(2.0,n)*(2*n+1)*Multip(n));
sum+=((n%2==0)?1:-1)*contr;} sum=0.5+1/Math.sqrt(2*Math.PI)*sum;
if(sign==-1) return 1-sum;
else return sum;}

请问matlab是否有直接这样的函数调用?如果没有谁能贴一个matlab兼容的函数,
谢谢。

有,

用normcdf(x,0,1)就是标准正态分布的分布函数。

如果是带平均值和方差μ和σ的正态分布,
用normcdf(x,mu,sigma)

标准正态分布就是mu=0,sigma=1的特例。

例如
>> normcdf(0,0,1)
ans =
0.5

>> normcdf(inf,0,1)
ans =
1

>> normcdf(-inf,0,1)
ans =
0