爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3880|回复: 6

[脚本编辑] 【已解决】关于完全的变量名不能加入循环,譬如uwnd(t=1+i)错在哪,求解答

[复制链接]

新浪微博达人勋

发表于 2018-3-9 15:10:44 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Rin 于 2020-4-20 14:25 编辑

关于完全的变量名不能加入循环,譬如uwnd(t=1+i)错在哪,求解答,以下是我的gs文件
'reinit'
'sdfopen F:\nc\daily\maximum.minimum.2t.2017jun.nc'
'enable print F:\nc\daily\4.gmf'

'set lon 73 135.5'
'set lat 17 55'
'set gxout shaded'

i=0
while(i<=29)
'd mx2t(t=1+i)'
'print'
'clear'
i=i+1
endwhile

'disable print'
'reinit'
*

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

新浪微博达人勋

发表于 2018-3-9 15:47:37 | 显示全部楼层
'd mx2t(t=1+i)'句中引号里的i当成字符常量了,不会变化。Grads显示前需要设置时间,使用下面语句即可:
'set t  ' 1+i
'd mx2t'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-9 16:01:54 | 显示全部楼层
本帖最后由 river 于 2018-3-9 16:04 编辑

问的这么理直气壮啊,抓狂了吧?这个错误很明显,你没搞清楚grads里面的常量和变量需不需要加引号,引号加在哪的问题。
你直接在变量名之后加括号表示时次,这种形式的表达要求 t 等于号后面必须是直接跟一个常数,但是这个常数是岁循环变化的。按照你目前这样的写法就是简单告诉grads, t的等于号后面是一个常数,所以每次display, grads会默认是这样的 d mx2t(t=1+i) ,明显这个表达是错误的,所以循环30次 每次都是d mx2t(t=1+i), 根本没有达到随循环的变化。
而实际上 t 是随时间在变化的,也就是 1+i 随循环变化,也就是说 1+i 整体上是一个变量,在grads里面变量是需要加上单引号的,所以要这样写 'd mx2t(t='1+i')'
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-9 18:27:29 | 显示全部楼层
本帖最后由 Rin 于 2020-4-17 00:45 编辑

非常谢谢大家,问题已解决
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-9 18:28:32 | 显示全部楼层
本帖最后由 Rin 于 2020-4-17 00:45 编辑
river 发表于 2018-3-9 16:01
问的这么理直气壮啊,抓狂了吧?这个错误很明显,你没搞清楚grads里面的常量和变量需不需要加引号,引号加 ...

十分谢谢,好久没用grads所以有点糊涂
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-3-9 18:29:59 | 显示全部楼层
本帖最后由 Rin 于 2020-4-17 00:45 编辑
yuchen 发表于 2018-3-9 15:47
'd mx2t(t=1+i)'句中引号里的i当成字符常量了,不会变化。Grads显示前需要设置时间,使用下面语句即可:
' ...

非常感谢你的回答
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-9 19:50:19 | 显示全部楼层
Rin 发表于 2018-3-9 18:28
十分谢谢,好久没用grads所以有点糊涂

以后多用用grads,其实好多功能咱们还没发现
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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