[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