爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4252|回复: 3

[分享资料] 【已解决】求季节平均,出来的结果和实际不符,为什么?

[复制链接]
发表于 2013-3-23 20:50:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 shirly 于 2013-4-21 14:49 编辑

我的程序:
'set gxout fwrite'
'set fwrite d:\lw\dat\season\sum\sum.p.ave.dat'
'set x 1 127'
'set y 1 79'
n=1
while(n<=714)
'set t 'n''
'define pj=ave(p,t='n',t='n'+2)'
'd pj'
n=n+12
endwhile
'disable fwrite'
这是只求夏天6-8月平均的程序,但是出来有些点的值明显不对,比如第一个点第一年6-8月的数为1、2、3,按理说按这个程序出来第一个点第一年夏天的值为2,但是这个程序出来的是0.为什么呢?
密码修改失败请联系微信:mofangbao
发表于 2013-3-23 21:35:54 | 显示全部楼层
貌似原理是对的,但是有两个问题存在:1、pj这个定义的变量每次循环其实时间只有一个点,只是平均值不同,所以'set t 'n''应当是'set t 1',2、ave函数的,时间截止'n'+2不会识别成你要的n+2的值,只能识别变量不识别算式;你可以新设一个变量,在while后面加一行j=n+2,然后把t='n'+2换成'j'。
总之就是:
'set gxout fwrite'
'set fwrite d:\lw\dat\season\sum\sum.p.ave.dat'
'set x 1 127'
'set y 1 79'
n=1
while(n<=714)
j=n+2
'set t 1'
'define pj=ave(p,t='n',t='j')'
'd pj'
n=n+12
endwhile
'disable fwrite'
;

评分

参与人数 1金钱 +2 收起 理由
shirly + 2 神马都是浮云

查看全部评分

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-3-23 22:07:05 | 显示全部楼层

当结果出来对的那一刻,真是……一个下午的困惑终于解开了。
感谢感谢感谢!!!!!!!!!!!!!!
还有个问题,我求完平均之后,缺省值变成-9.99e+8(好像是grads默认缺省)了,之前的99999缺省没有了,这正常吗?
密码修改失败请联系微信:mofangbao
发表于 2013-3-23 22:15:06 | 显示全部楼层
shirly 发表于 2013-3-23 22:07
当结果出来对的那一刻,真是……一个下午的困惑终于解开了。
感谢感谢感谢!!!!!!!!!!!!!! ...

正常,grads会自动忽略缺省值进行计算,默认的计算方法很合理,应该没事的

评分

参与人数 1金钱 +2 收起 理由
shirly + 2 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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