- 积分
- 37134
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-7-22
- 最后登录
- 1970-1-1
![未绑定新浪微博用户 新浪微博达人勋](source/plugin/sina_login/img/gray.png)
|
发表于 2020-2-1 13:04:25
|
显示全部楼层
试试以下?
- begin
- a = addfile("out-jjas-mean.nc","r")
- t=a->ini_sfc_sw_down_all_mon(0,:,:)
- m=avg(t(25:45,70:110))
- print(m)
- end
复制代码 1. NCL可以不必预先定义变量, 直接赋值整个矩阵t, 这样没有矩阵大小不匹配的问题 (见第2,5点).
2. 选中 (0,:,:) 以后, 就是一个21*41的二维数组. 如果选中 (0:0,:,:), 还能是个1*21*41的三维数组.
3. 用new生成的变量m会是缺省值, 不是0, 以后的加法运算还会是缺省值.
4. 如果你要 m=m+t, 应该是m=m+t(i,j) 之类的.
5. 在这里似乎你的数组 t 比21*41要大.
6. NCL定义了很多方便你的函数, 应该多利用. 以及NCL应该尽量避免使用循环 (尽量用函数). 如果简单算术平均, 忽略低纬度格点的面积可能大一些的话, 直接用avg函数就好.
|
|