爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7722|回复: 8

[讨论] 我的滑动t检验怎么老出错误呢,求大侠帮忙解决

[复制链接]

新浪微博达人勋

发表于 2012-8-1 10:57:00 | 显示全部楼层 |阅读模式

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

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

x
clear
clc
x=xlsread('mean.xls','sheet1');
for  i=1:60
a=x(1:i);
b=x(i:60);
n1=length(a);
n2=length(b);
c=(n1+n2)/(n1*n2);
s1=var(a);
s2=var(b);
delta1=n1*s1+n2*s2;
delta=delta1/(n1+n2-2);
t(1,i)=(mean(a)-mean(b))/sqrt(delta*c);
end
xlswrite('huadongttest',t,'sheet1','A1');
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-1 13:24:20 | 显示全部楼层

回帖奖励 +5 金钱

试试这个滑动t检验法的Fortran程序吧!  

C THIS IS A PROGRAM FOR DETECTING ABRUPT CLIMATIC CHANGE
C BY USING MOVING t-TEST TECHNIQUE
PROGRAM MTT
DIMENSION Y(10000),YN1(10000),YN2(10000),YC1(10000),YC2(10000),
     & S(10000),T(10000),NY1(10000),NY2(10000),NNY1(10000),NNY2(10000)
WRITE(*,10)
  10 FORMAT(5X,'N=?,IH=?,NYEAR=?')
READ(*,*)N,IH,NYEAR
C **************************************************
C * N:    SAMPLE SIZE                              *
C * IH:   LENGTH OF SUB-SERIES                  *
C * NYEAR: FIRST YEAR OF THE TIME SERIES           *
C * Y(N):  ORIGINAL TIME SERIES                    *
C * ************************************************
OPEN(2,FILE='h:\test\605.TXT ',form='formatted')
READ(2,*)(Y(I),I=1,N)
N1=N-IH+1
N2=N-2*IH+1
C1=0.0
C2=0.0
DO 20 I=1,IH                                       
  20 C1=C1+Y(I)
DO 30 I=IH+1,2*IH
  30 C2=C2+Y(I)
DO 40 I=1,N-IH
D1=C1-Y(I)+Y(I+IH)
YN1(I)=C1/IH
  40 C1=D1
DO 50 I=IH+1,N-IH
D2=C2-Y(I)+Y(I+IH)
YN2(I-IH)=C2/IH
  50 C2=D2
YN1(N1)=C1/IH
YN2(N2)=C2/IH
DO 60 I=1,N1
YC1(I)=0.0
DO 70 J=I,IH+I-1
  70 YC1(I)=YC1(I)+(Y(J)-YN1(I))*(Y(J)-YN1(I))
  60 CONTINUE
DO 80 I=1,N2
YC2(I)=0.0
DO 90 J=IH+I,2*IH+I-1
  90 YC2(I)=YC2(I)+(Y(J)-YN2(I))*(Y(J)-YN2(I))
  80 CONTINUE
DO 100 I=1,N2
  100 S(I)=SQRT((YC1(I)+YC2(I))/(IH+IH-2))
DO 110 I=1,N2
  110 T(I)=(YN1(I)-YN2(I))/(S(I)*SQRT(2.0/IH))
DO 120 I=1,N2
NY1(I)=NYEAR+I-1
NNY1(I)=NY1(I)+IH-1
NY2(I)=NYEAR+I+IH-1
  120 NNY2(I)=NY2(I)+IH-1
IF(IH.EQ.5)THEN
A=4.0
B=-4.0
ELSE IF(IH.EQ.10)THEN
A=3.2
B=-3.2
ELSE
A=3.0
B=-3.0
END IF
OPEN(3,FILE='h:\test\604.txt',STATUS='NEW')
WRITE(3,130)
  130 FORMAT(30X,'ABRUPT CLIMATIC CHANGE ANALYSIS'/)
WRITE(3,140)
  140 FORMAT(25X,'TM',4X,'t-TEST(0.01)'/)
DO 150 I=1,N2
WRITE(3,160)NY1(I),NNY1(I),NY2(I),NNY2(I),T(I),A,B
  160 FORMAT(1X,I4,'-',I4,'--',I4,'-',I4,1X,3F8.2)
  150 CONTINUE
OPEN(4,FILE='h:\test\606.txt',STATUS='NEW')
DO 170 I=1,N2
WRITE(4,180)NNY1(I),T(I),A,B
  180 FORMAT(1X,I4,3F8.2)
  170 CONTINUE
STOP
END
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-2 09:03:48 | 显示全部楼层
wl650915 ,abd 给你的程序,你运行了吗?结果对了吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-8-5 18:44:59 | 显示全部楼层
本帖最后由 lyneyy 于 2012-8-5 18:46 编辑

我觉得可能是你的基准点设置有问题,试试论坛里有人提到的从第10年一直到倒数第10年连续设置基准点的方法。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-8-7 07:51:51 | 显示全部楼层

谢谢啦,就是基准点设置的问题,我已经改过来了,谢谢你的回帖。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-10 16:58:36 | 显示全部楼层
wl650915 发表于 2012-8-7 07:51
谢谢啦,就是基准点设置的问题,我已经改过来了,谢谢你的回帖。

我也在做这方面的检验,也有一定的问题,不知道能不能把你修改过之后的matlab的程序发我一下,我也想试试。ps:meredithxf@126.com。非常感谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-3 00:14:18 | 显示全部楼层
wl650915 发表于 2012-8-7 07:51
谢谢啦,就是基准点设置的问题,我已经改过来了,谢谢你的回帖。

你好,你改过的滑动T检验matlab程序能否发一份给我:574382068@qq.com 先谢过啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-22 18:21:13 | 显示全部楼层
yiyimargaret 发表于 2013-7-3 00:14
你好,你改过的滑动T检验matlab程序能否发一份给我: 先谢过啦

可以发一份给我么?710593613@qq.com
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-22 18:22:26 | 显示全部楼层
wl650915 发表于 2012-8-7 07:51
谢谢啦,就是基准点设置的问题,我已经改过来了,谢谢你的回帖。

你好,可以发一份修改过的matlab 程序给我么?710593613@qq.com,非常感谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-7-22 14:57:26 | 显示全部楼层
请问楼主这个步长是怎么回事呀   i=1:60表示的是什么
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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