[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:002372] Re: VArray
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:002372] Re: VArray
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxx>
- Date: Tue, 26 Jul 2005 21:12:03 +0900
堀之内です。
 
> #staggered grid問題です。
> #ユーザーなお話もここでよいのでしょうか?
もちろんです!!
 
> GGraph.vectorしたいのですが、扱ってるデータが東西風と南北風で定義点がず
> れているので、GPhys で、grid pointの中間の値を適当に補完して、GPhys で返
> すというメソッドを作ろうとしています。
> 
> 補間するだけなので、属性とかはそのままで値だけ変わってほしいわけです。
> 
> たとえば、軸を作るために
> 
>     def bar(dim)
>       grid = self.grid_copy
>       va = grid.axis(dim).pos
>       na = ( va.val[1..-1] + va.val[0..-2] ) / 2.0E0
>       va = va.replace_val(na)
>       axis = Axis.new.set_pos(va)
> .....
> 
> のようなことをやろうとしたのですが、replace_val で NArray の shape がも
> ともとと違うといって怒られてしまいます。
たぶん以下がやりたいことを実現するもっとも短い方法でしょう.
(だって中身は1行)
require "numru/gphys"
module NumRu
  class GPhys
    def bar(dim)
      self[ *( [true]*dim+[1..-1,false] ) ] +
      self[ *( [true]*dim+[0..-2,false] ) ] / 2.0
    end
  end
end