MATLAB分布检验程序

MATLAB分布检验程序


2024年1月7日发(作者:)

% 里面有字符串不对。

% 建立函数

disp('该数据源服从正态分布。')等,中需要将里面的“”去掉。

建立m文件后查看一下里面的字符是否正确。

继续追问: 代码正确了怎么检验我的数据?是把数据定义为A,然后再调用这个代码的m文件吗?

补充回答: 输入数据A和alpha,然后查看command窗口的提示语句。

继续追问:

??? Input argument "A" is undefined.

Error in ==> p_judge at 4

[mu,sigma]=normfit(A);

这是我按你说的修改后的提示错误,怎么修改呀?谢谢

补充回答: 可否贴一下你的调用语句?

继续追问:

function f=p_judge(A,alpha)

% 本程序用于判别所给数据源在置信率为0.05时的概率分布形式。A的形式为n×1。

[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

这个就是我建立的m文件

补充回答: 嗯,然后你输入的数据和调用语句呢?

继续追问: 我不会调用呀!我这有组数据

21

26

20

22

23

27

20

25

27

21

17

26

22

22

19

18

26

17

26

20

19

20

25

20

25

26

23

26

21

20

帮我试试,谢谢

补充回答: 代码

% By lyqmath

function main()

clc;

A = [21

26

20

22

23

27

20

25

27

21

17

26

22

22

19

18

26

17

26

20

19

20

25

20

25

26

23

26

21

20];

p_judge(A, 0.1);

% 建立函数

function p_judge(A,alpha)

% 本程序用于判别所给数据源在置信率为0.05时的概率分布形式。A的形式为n×1。

%% 正态分布判断

[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

%% rayleigh分布判断

[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

结果

该数据源服从正态分布。

该数据源服从γ分布。

该数据源服从泊松分布。

该数据源不服从指数分布。

该数据源不服从rayleigh分布。

matlab中:

function f=p_judge(A,alpha)

% 本程序用于判别所给数据源在置信率为0.05时的概率分布形式。A的形式为n×1。

[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

主要是kstest的用法


发布者:admin,转转请注明出处:http://www.yc00.com/web/1704580741a1358788.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信