爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4997|回复: 7

[源程序] 求助滑动t检验的程序问题

[复制链接]
发表于 2015-8-22 22:06:07 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
各位大神您们,小弟是初学者 只会拿程序来用但是具体到自己的数据时候就运用不了 不知道需要修改哪里 ,请教哪位大神帮忙指导一下,小弟在此先谢过了,谢谢,并且能指教一些简单的问题,程序如下:
%%%该程序用MMT(滑动t)方法检验气候突变%%%
%读数据%
M=load('q.txt');
x=M(:,1);y=M(:,2);t=zeros(53,1);y1=zeros(53,1);
%MMT方法检验%
%先设定子序列的长度(取n1=5;n2=5)%
n1=5;n2=5;
m=sqrt((1.0/n1)+(1.0/n2));
%开始计算%
for i=5:48
    averx1=mean(y(i-4:i));
    averx2=mean(y(i+1:i+5));
    s1=var(y(i-4:i));  
    s2=var(y(i+1:i+5));
    s=sqrt((n1*s1+n2*s2)/(n1+n2-2));
    t(i-4)=(averx2-averx1)/(s*m);  
end
plot(x(1:53),t,'r-');
y1(:)=2.009;                   %n=53-2时,显著性检验标准,99.5%
hold on;
plot(x,y1,'k:',x,-y1,'k:');
axis([1951,2014,-4,4]);
xlabel('年');ylabel('t');title('MMT(n=5)检验');
数据如下:
1951
839.5
1952
991.3
1953
909.7
1954
908.5
1955
1028.2
1956
986.9
1957
956
1958
956.7
1959
815.9
1960
845.3
1961
852
1962
1005
1963
1213.3
1964
952.7
1965
1096.3
1966
1098.5
1967
842.5
1968
1058.5
1969
792.8
1970
904.8
1971
1033.9
1972
845.1
1973
940.1
1974
944.4
1975
976.5
1976
758.7
1977
775.4
1978
1175
1979
974.7
1980
994.3
1981
901.5
1982
861
1983
648.1
1984
867.9
1985
923.7
1986
998.2
1987
1090.1
1988
824.2
1989
1137.5
1990
1133.3
1991
1083.5
1992
789.9
1993
1102.5
1994
842.9
1995
995.2
1996
1059.4
1997
800.6
1998
1215.2
1999
1283.4
2000
1063.6
2001
1130.7
2002
1165.4
2003
897.2
2004
1119.3
2005
830.6
2006
859.4
2007
1054
2008
918.5
2009
821.8
2010
989.8
2011
808
2012
655
2013
896.3
2014
915.3

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-8-22 22:08:54 | 显示全部楼层

求助M-K检验的问题

各位大神您们,小弟是初学者 只会拿程序来用但是具体到自己的数据时候就运用不了 不知道需要修改哪里 ,请教哪位大神帮忙指导一下,小弟在此先谢过了,谢谢,并且能指教一些简单的问题,程序如下:
load data.txt
X=data
N=length(X);
UF=zeros(N-1,1);
for t=2:N
x=X(1:t);
S=0;
n=length(x);
for k=1:(n-1)
for j=(k+1):n
if x(j)>x(k)
S=S+1;
else
S=S+0;
end
end
end
ES=n*(n+1)/4;
VarS=n*(n-1)*(2*n+5)/72;
Z=(S-ES)/sqrt(VarS);
UF(t-1)=Z;
end
Y=flipud(X);
UB=zeros(N-1,1);
for t=2:N
x=Y(1:t);
S=0;
n=length(x);
for k=1:(n-1)
for j=(k+1):n
if x(j)>x(k)
S=S+1;
else
S=S+0;
end
end
end
ES=n*(n+1)/4;
VarS=n*(n-1)*(2*n+5)/72;
Z=(S-ES)/sqrt(VarS);
UB(t-1)=-Z;
end
figure(3)
hold off
plot(1:(N-1),UF,'k-','linewidth',1);
hold on
plot(1:(N-1),UB,'k-.','linewidth',1);
plot(1:(N-1),1.96*ones(N-1,1),':','linewidth',1);
axis([1,N-1,-4,4])
set(gca,'Fontsize',10)
set(gca,'xtick',[0:5:N-1])
set(gca,'xticklabel',1950+get(gca,'xtick'))
hold on
plot(1:(N-1),2.58*ones(N-1,1),':','linewidth',1);
plot(1:(N-1),-2.58*ones(N-1,1),':','linewidth',1)
legend('UF统计量','UB统计量','0.05显著水平');
xlabel('年份','FontName','TimesNewRoman','FontSize',10);
ylabel('MK统计量','FontName','TimesNewRoman','Fontsize',10);
数据如下 :
1951
839.5
1952
991.3
1953
909.7
1954
908.5
1955
1028.2
1956
986.9
1957
956
1958
956.7
1959
815.9
1960
845.3
1961
852
1962
1005
1963
1213.3
1964
952.7
1965
1096.3
1966
1098.5
1967
842.5
1968
1058.5
1969
792.8
1970
904.8
1971
1033.9
1972
845.1
1973
940.1
1974
944.4
1975
976.5
1976
758.7
1977
775.4
1978
1175
1979
974.7
1980
994.3
1981
901.5
1982
861
1983
648.1
1984
867.9
1985
923.7
1986
998.2
1987
1090.1
1988
824.2
1989
1137.5
1990
1133.3
1991
1083.5
1992
789.9
1993
1102.5
1994
842.9
1995
995.2
1996
1059.4
1997
800.6
1998
1215.2
1999
1283.4
2000
1063.6
2001
1130.7
2002
1165.4
2003
897.2
2004
1119.3
2005
830.6
2006
859.4
2007
1054
2008
918.5
2009
821.8
2010
989.8
2011
808
2012
655
2013
896.3
2014
915.3

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-8-24 07:36:46 | 显示全部楼层
那些大神在啊,赶紧指导小弟一下吧 ,急需要学会啊
密码修改失败请联系微信:mofangbao
发表于 2015-10-25 21:02:48 | 显示全部楼层
读程序的时候设定路径
密码修改失败请联系微信:mofangbao
发表于 2015-12-9 19:26:14 | 显示全部楼层
麻烦问一下楼主,你这个代码的问题解决了吗?
密码修改失败请联系微信:mofangbao
发表于 2016-8-3 17:41:30 | 显示全部楼层
我也是同样的问题
密码修改失败请联系微信:mofangbao
发表于 2018-1-23 11:28:08 | 显示全部楼层
学习,很好
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2018-1-23 15:12:54 | 显示全部楼层
谢谢,学习了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表