[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002399] Re: gpview, and max, min
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002399] Re: gpview, and max, min
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 09 Aug 2005 15:28:18 +0900
堀之内です。
> > 本来は NArray にそういう機能をつくるのがベストだと思うのですが、
>
> 最低限 1 次元 index を n 次元 index に変換する機能をつければ
> いいのでしょうかね. そしたら max, min だけでなく
> ある範囲の値をもつ場所のリストなんかも作れそうで嬉しいかも.
それもあるといいですが、気にしてるのは実行効率で、max, min, median
を求める際、その場所もわかるようになってれば無駄がなくて
いいということです。あとから where で探すのは非効率なので。
正規表現の場合の $1, $2,... みたいに、後から調べられるように
なってるといいかと。ほかには min,loc = NArray#min_with_loc
とか loc = NArray#minloc (Fortran90風) のようなメソッドを作る
という手もあります。最後のは別立てなので、whereのほうがむしろ
いいかも。
ちなみに 1D -> 多次元の添え字変換は、よほど高次元でない限り
Ruby でも効率悪くないですから、後づけでメソッド定義すれば
いいでしょう:
class NArray
def idx1d2idx(idx1d)
idx=Array.new
shape.each_with_index{|len,d| idx1d,idx[d] = idx1d.divmod(len)}
idx
end
end
Takeshi Horinouchi -- horinout@xxxxxxxxxxxxxxxxxx
Research Institute for Sustainable Humanosphere
Kyoto Univ., Uji, 611-0011, Japan
phone:+81-774-38-3812 fax:+81-774-31-8463