[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002498] Re: treatment of -inf



堀之内です. 

> エネルギースペクトルを log スケールでプロットしたいんですが, 
> エネルギーが 0 の点で ruby の算術関数 log10 が -inf を返して
> しまい, その後の描画でそのあつかいに困ってしまいました. 
> このような場合, どう処理するのが適切でしょうか. 
> 
> 例えば dcl の欠損値機能を用いて log10 が -inf を返すと欠損値を代入
> しておいて描画作業する, なんてことは可能でしょうか? 
> あるいはもっといい方法ありますでしょうか. 

私なら、log 表示でゼロ付近の値が含まれることもある場合は、値域
(あるは表示最小値だけ)を決めちゃいます。0 ピッタリじゃなくても、
突出して 0 に近い値がたまたま含まれる場合、自動スケーリングだと
そこに引きずられて見辛い図になりますので。

ちなみに -inf の処理はできます。例えばこう

require "narray"
na = NMath::log10( NArray.float(3).indgen! )
neg_inf = -1.0/0.0
na[ na.eq(neg_inf) ] = -999.0