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

[dennou-ruby:002372] Re: VArray



堀之内です。
 
> #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