爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5237|回复: 12

[求助] 回归系数计算开始对,但是后来加上求滤去线性时候,输出的是0kb

[复制链接]

新浪微博达人勋

发表于 2013-4-29 17:08:14 | 显示全部楼层 |阅读模式

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

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

x
        parameter (nx=180,ny=89,m=55,undef=32767)
    real sst(nx,ny,m),in(m),rxy(nx,ny),sx(nx,ny),sy,avex(nx,ny),avey,b(nx,ny),f(nx,ny)
        real a(nx,ny,m),rr(nx,ny),t(nx,ny),sxa(nx,ny),sya,avexa(nx,ny),aveya
!        real sst1(nx,ny,n1),in1(n1)
       
!-----input------
open(1,file='ssts.grd',form='binary')
        do k=1,m
        read(1)((sst(i,j,k),i=1,nx),j=1,ny)
        enddo
        open(2,file='index.grd',form='binary')
        read(2)(in(i),i=1,m)

!------计算系数和F检验-----

call xiangguan(sst,in,rxy,sx,sy,avex,avey)
do j=1,ny
do i=1,nx
if(sst(i,j,1)/=undef)then
b(i,j)=rxy(i,j)*sqrt(sx(i,j))/sqrt(sy)
f(i,j)=rxy(i,j)**2/(1-rxy(i,j)**2)*(m-2)
else
b(i,j)=undef
f(i,j)=undef
endif
enddo
enddo

do k=1,m
do j=1,ny
do i=1,nx
if(sst(i,j,k)/=undef)then
a(i,j,k)=sst(i,j,k)-b(i,j)*avey
else
a(i,j,k)=undef
endif
enddo
enddo
enddo


open(6,file='d:\paper\160\asummer.txt')

write(6,*)((f(i,j),i=1,nx),j=i,ny)

!call xiangguan(a,in,rr,sxa,sya,avexa,aveya)
!-------------t检验---------------------------


!------output-------------------
open(3,file='d:\paper\160\bsummer.grd',form='binary')
open(4,file='d:\paper\160\fsummer.grd',form='binary')
open(5,file='d:\paper\160\atsummer.grd',form='binary')
!open(6,file='d:\paper\160\asummer.grd',form='binary')
write(3)((b(i,j),i=1,nx),j=1,ny)
write(4)((f(i,j),i=1,nx),j=1,ny)
write(5)((b(i,j),i=1,nx),j=i,ny)
!write(5)((t(i,j),i=1,nx),j=i,ny)本来想写输出a,发现是0kb后来改成b或者f还是0kb好神奇啊~~~~~~~~~~~
!do k=1,m
!write(6)((a(i,j,k),i=1,nx),j=i,ny)
!enddo
end

!---------子程序:计算相关系数-----
subroutine xiangguan(a,b,r,sa,sb,avea,aveb)
        parameter (nx=180,ny=89,m=55,undef=32767)
real a(nx,ny,m),b(m),sa(nx,ny),sb,sab(nx,ny),r(nx,ny),avea(nx,ny),aveb

do k=1,m
do j=1,ny
do i=1,nx
if(a(i,j,1)/=undef)then
avea(i,j)=avea(i,j)+a(i,j,k)/m
endif
enddo
enddo
aveb=aveb+b(k)/m
enddo

do k=1,m
do j=1,ny
do i=1,nx
if(a(i,j,1)/=undef)then
sa(i,j)=sa(i,j)+(a(i,j,k)-avea(i,j))**2/m
sab(i,j)=sab(i,j)+(a(i,j,k)-avea(i,j))*(b(k)-aveb)/m
endif
enddo
enddo
sb=sb+(b(k)-aveb)**2/m
enddo

do j=1,ny
do i=1,nx
if(a(i,j,1)/=undef)then
r(i,j)=sab(i,j)/sqrt(sa(i,j))/sqrt(sb)
endif
!if(abs(r(i,j))>=1)then
!write(*,*)r(i,j)
!endif
enddo
enddo


end



密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-4-29 17:46:41 | 显示全部楼层
程序太长,不容易看出来的···建议你逐步检测数据吧,看看哪一步出错了···
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-29 21:07:33 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-29 22:57:24 | 显示全部楼层
程序太长,不容易看出来的···建议你逐步检测数据吧,看看哪一步出错了···多谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-4-30 09:16:16 | 显示全部楼层
dzxconan 发表于 2013-4-29 21:07
print是对的 可是写不进文件是怎么回事啊??

你写到txt里面看看是否出错···类似于6的写法,给一个输出格式···如果数据不出错的话再write称binary格式的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-30 13:41:59 | 显示全部楼层
言深深 发表于 2013-4-30 09:16
你写到txt里面看看是否出错···类似于6的写法,给一个输出格式···如果数据不出错的话再write称binar ...

open(3,file='d:\paper\160\bsummer.grd',form='binary')
open(4,file='d:\paper\160\fsummer.grd',form='binary')
open(50,file='d:\paper\160\arsummer.txt')
!open(6,file='d:\paper\160\asummer.grd',form='binary')
write(3)((b(i,j),i=1,nx),j=1,ny)
write(4)((f(i,j),i=1,nx),j=1,ny)
print*,rr
write(50,*)((rr (i,j),i=1,nx),j=i,ny)、
我这样写输出 可是print没有问题 txt只有1k 里面什么都没有
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-30 13:42:52 | 显示全部楼层
天籁之音 发表于 2013-4-29 22:57
程序太长,不容易看出来的···建议你逐步检测数据吧,看看哪一步出错了···多谢

但是后来同时输出 为什么开始没有问题的数组后来就有问题了呢??
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2013-4-30 17:58:04 | 显示全部楼层
dzxconan 发表于 2013-4-30 13:41
open(3,file='d:\paper\160\bsummer.grd',form='binary')
open(4,file='d:\paper\160\fsummer.grd',form ...

用循环输出
do j=i,ny
do i=1,nx
print*,rr (i,j)
enddo
enddo
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-26 16:35:04 | 显示全部楼层
怎么不对回归系数进行显著性检验呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-7-27 16:27:13 | 显示全部楼层
学习到不少知识,谢谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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