爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5580|回复: 6

[求助] 【已解决】相关系数求出来怎么是错的,各位帮帮忙啊

[复制链接]

新浪微博达人勋

发表于 2014-4-17 22:15:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 穿云搅浪 于 2014-4-21 12:26 编辑

大家帮帮忙啊,检查了好长时间,不知道哪里出问题了,各位好心人帮帮我吧!!


program main
parameter(nx=30,ny=22)
external corr
real slpyear(nx,ny,23),indexncep(23),corrslp(nx,ny)
!读入要素场
open(100,file='E:/project/ncep/slpyear.grd',form='binary')
      read(100) (((slpyear(i,j,n),i=1,nx),j=1,ny),n=1,23)
close(100)
!读入季风指数
open(101,file='E:/project/ncep/indexncep.txt')   
         read(101,*) (indexncep(n),n=1,23)
close(101)
!得到相关系数
do j=1,ny
    do i=1,nx      
              corrslp(i,j)=corr(indexncep(:),slpyear(i,j,:),23)         
    end do
end do

!输出指数
open(200,file='E:/project/ncep/corrslp.grd',form='binary')   
        write(200) ((corrslp(i,j),i=1,nx),j=1,ny)
close(200)


end program

!计算相关系数函数
function corr(x,y,m)
    implicit none
    integer i,m
        real x(m),y(m),corr,sum1,sum2,sum3,u,d        
        sum1=0
        sum2=0
        sum3=0
        do i=1,m
                sum1=sum1+x(i)**2
                sum2=sum2+y(i)**2
                sum3=sum3+x(i)*y(i)
        end do
        u=sum3-m*(sum(x)/m)*(sum(y)/m)
        d=sqrt(abs((sum1-(sum(x)**2)/m)*(sum2-(sum(y)**2)/m)))
        corr=u/d
end function corr


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

新浪微博达人勋

发表于 2014-4-17 22:22:34 | 显示全部楼层
这问题确实很怪呀,程序好像没看出有什么错误呀?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-18 09:10:57 | 显示全部楼层
没太看明白相关系数用的哪个公式,还是试试一步一步来计算的吧
subroutine corra(x,y,m,cc)
        real x(m),y(m),cc
        real up,down1,down2,down,xx,yy
        integer m
        xx=0
        yy=0
        up=0
        down1=0
        down2=0       
        do k=1,m
        xx=xx+x(k)/m
        yy=yy+y(k)/m
        enddo
        do k=1,m
        up=up+(x(k)-xx)*(y(k)-yy)
        down1=down1+(x(k)-xx)**2
        down2=down2+(y(k)-yy)**2
        enddo
      
        down=sqrt(down1*down2)
        cc=up/down
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-18 13:00:35 | 显示全部楼层
river 发表于 2014-4-18 09:10
没太看明白相关系数用的哪个公式,还是试试一步一步来计算的吧
subroutine corra(x,y,m,cc)
        real x(m),y ...

非常感谢啊,试了一下跟excel算的一样!应该是我以前公式搞错了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-18 14:48:07 | 显示全部楼层
穿云搅浪 发表于 2014-4-18 13:00
非常感谢啊,试了一下跟excel算的一样!应该是我以前公式搞错了

一样了就好,本来还想学一下你这个简单的公式呢O(∩_∩)O哈哈~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-21 10:15:39 | 显示全部楼层
楼主解决了没有,解决了记得修改下标题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-3-31 16:45:20 | 显示全部楼层
博主写的太精炼了,顶顶!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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