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条)