【转载自https://blog.youkuaiyun.com/bushixiaofan/article/details/37521003?locationNum=10】
1)函数代码
function p_judge(A,alpha)
[mu,sigma]=normfit(A);
p1=normcdf(A,mu,sigma);
[H1,s1]=kstest(A,[A,p1],alpha)
n=length(A);
if H1==0
disp('该数据源服从正态分布。')
else
disp('该数据源不服从正态分布。')
end
phat=gamfit(A,alpha);
p2=gamcdf(A,phat(1),phat(2));
[H2,s2]=kstest(A,[A,p2],alpha)
if H2==0
disp('该数据源服从γ分布。')
else
disp('该数据源不服从γ分布。')
end
lamda=poissfit(A,alpha);
p3=poisscdf(A,lamda);
[H3,s3]=kstest(A,[A,p3],alpha)
if H3==0
disp('该数据源服从泊松分布。')
else
disp('该数据源不服从泊松分布。')
end
mu=expfit(A,alpha);
p4=expcdf(A,mu);
[H4,s4]=kstest(A,[A,p4],alpha)
if H4==0
disp('该数据源服从指数分布。')
else
disp('该数据源不服从指数分布。')
end
[phat, pci] = raylfit(A, alpha);
p5=raylcdf(A,phat);
[H5,s5]=kstest(A,[A,p5],alpha)
if H5==0
disp('该数据源服从rayleigh分布。')
else
disp('该数据源不服从rayleigh分布。')
end
2)调用举例
clc;clear;
data=xlsread('附件1.xls','24小时','B2:G239');%输入数据
A=data(:,6);
alpha=0.05;
p_judge(A,alpha);%判断数据服从什么分布