- 积分
- 10656
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-10-10
- 最后登录
- 1970-1-1
|
发表于 2014-3-4 15:48:49
|
显示全部楼层
deeli 发表于 2014-3-4 15:21
前辈,我想用同样的思路提取上一年11月~下一年4月的数据,发现因为有2月在里面,数据没办法读到temp变量里 ...
这就是为什么我在最早给你的示例程序里面有下面红色两句的原因。
olr2d!0 = "time"
olr2d&time = (/19740501, ..., 20131031/) % 10000
do y = 1974, 2013
temp := olr1d({y * 10000 + 501 : y * 10000 + 1031})
olr2d({temp&time % 10000}, y - 1974) = temp
end do
对于1974年而言,没有5月数据,所以temp的time坐标变量是(/19740601, ..., 19741031/),那么用{temp&time % 10000}去索引olr2d,就只会更新能够找到的坐标,即从6月开始更新,这就避免了if语句判断数据是否完整。
同样,对于你说的这种情况,只需要生成一个11月到4月长度的数组,其中2月按29天算,然后设置坐标变量time,读出的数据用坐标索引的方式更新就可以了。
不知道你能不能明白,反正我感觉描述起来比较费劲,o(∩∩)o...哈哈!
|
|