爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3648|回复: 0

[混合编程] IDL编程学习之无穷大Inf与不确定NaN的检测

[复制链接]

新浪微博达人勋

发表于 2017-4-15 16:04:35 | 显示全部楼层 |阅读模式

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

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

x
IDL中经常出现的数学错误就是不确定(NaN)和无穷大(Inf)
程序里这2个数有系统变量:
!values.f_nan就是NaN
!values.f_infinity就是Inf。
【判断数值是否有效】
finite函数用于判断数值是否有效,即这个数是不是无穷大和不确定:
IDL> finite(0)
   1
IDL> finite(!values.f_nan)
   0
IDL> finite(!values.f_infinity)
   0
判断一个量是不是无穷大,还可以把它与Inf对比:
IDL> 1 eq !values.f_infinity
   0
IDL> 1/0. eq !values.f_infinity必须是0.,不能是0.
   1
【如何求Inf之外的最大值?】
“/nan”的使用
IDL> a=findgen(3,4)+10
IDL> b=findgen(3,4)
IDL> c=a/b
% Program caused arithmetic error: Floating divide by 0
IDL> c
             Inf       11.000000       6.0000000
       4.3333335       3.5000000       3.0000000
       2.6666667       2.4285715       2.2500000
       2.1111112       2.0000000       1.9090909
IDL> max(c)
             Inf
IDL> max(c,/nan)
       11.000000

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

本版积分规则

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

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

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