登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
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
|