爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10865|回复: 5

想用ncl把一个数组求和,出现了错误

[复制链接]

新浪微博达人勋

发表于 2014-4-11 17:41:45 | 显示全部楼层 |阅读模式
NCL
系统平台:
问题截图: -
问题概况: 求和赋值出错
我看过提问的智慧: 看过
自己思考时长(天): 4

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

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

x
出错的那一截如下所示,刚开始有一个三维数组,时间(每小时),经度,纬度。时间跨度为一个月,我想求每小时的月平均,于是就先把noo2(:,:,:)赋值给一个二维的求和数组su(:,:),然后再用这个二维数组除以总天数求平均。循环24次。但是每次都有报错如下:
su=new((/50,50/),"float")
ts=1
do ts=1,24
ttt=ts
do while(ttt.le.696)
su(:,:)=su(:,:)+noo2(ttt,:,:)
ttt=ttt+24
end do
noo2ave(ts,:,:)=su/28
su(:,:)=0
end do
报错是这样的:
fatal:Plus: Dimension size, for dimension number 0, of operands does not match, can't continue
会的同志们麻烦教一下我,不胜感激。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-11 17:57:23 | 显示全部楼层
noo2_4d = reshape(noo2, (/24, 696 / 24, 50, 50/))
noo2avg = dim_avg_n(noo2_4d, 1)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-11 18:03:28 | 显示全部楼层
至于你程序里的错误,请告知:
1、出错的具体行(ncl错误提示里有);
2、noo2的维数信息。696小时是29天,为何平均时除以28?

另外,ncl下标都是从0开始,ts=1这种操作很容易下标越界!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-11 18:31:23 | 显示全部楼层
longlivehj 发表于 2014-4-11 18:03
至于你程序里的错误,请告知:
1、出错的具体行(ncl错误提示里有);
2、noo2的维数信息。696小时是29天 ...

谢谢大神,我知道错误了,我的数据只有28天的,写成696个小时,数据超出了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-11 18:33:48 | 显示全部楼层
q863510557 发表于 2014-4-11 18:31
谢谢大神,我知道错误了,我的数据只有28天的,写成696个小时,数据超出了。

哦,好的!
没必要用循环,两行就够了。
noo2_4d = reshape(noo2, (/24, 28, 50, 50/))
noo2avg = dim_avg_n(noo2_4d, 1)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-11 18:36:56 | 显示全部楼层
longlivehj 发表于 2014-4-11 18:33
哦,好的!
没必要用循环,两行就够了。
noo2_4d = reshape(noo2, (/24, 28, 50, 50/))

恩恩  这两行我要好好研究研究
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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