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

[dennou-ruby:002787] Re: mean vs average



堀之内です。

谷口さん、反応遅くなってすみません。average, integrate
(NumRu::Axis の @@operations に定義されてるメソッド)
については、結果がスカラーになる場合に対応できてません
でした。mean 等 (VArray::NArray_type3_methods) では、
そういう場合に GPhys オブジェクトでなく、生のスカラーを
返すようになってますので、それにあわせるように変えて 
cvs commit しました。
(http://ruby.gfd-dennou.org/products/gphys/gphys/lib/numru/gphys/gphys.rb)


> 
> 谷口です
> 
> 神代さん, コメントどうもありがとうございます. 
> 
> On Fri, 27 Apr 2007 17:43:51 +0900,
> KOSHIRO Tsuyoshi <koshiro@xxxxxxxxxxxxxx> wrote :
> 
> >> 神代です.
> >> 
> >> At Fri, 27 Apr 2007 12:00:06 +0900 (JST),
> >> Hiroshi Taniguchi wrote:
> >> > 
> >> > gphysAc5=gphysA.cut( 0..360, -20..20, 200, 4 ) # t=5 の A データ
> >> > gphysBc5=gphysB.cut( 0..360, -20..20, 200, 4 ) # t=5 の B データ
> >> > 
> >> > frst=(gphysBc1-gphysAc1)**2
> >> > fcst=(gphysBc5-gphysAc5)**2
> >> > 
> >> > frsta=frst.average(0).average(1).to_f 
> >> > fcsta=fcst.average(0).average(1).to_f
> >> > 
> >> > #frsta=frst.mean(0,1).to_f
> >> > #fcsta=fcst.mean(0,1).to_f
> >> > ------------------------------------------------------------------
> >> > 
> >> > average を取ろうとしている frst や fcst の中身を表示させると, 
> >> > 
> >> > ------------------------------------------------------------------
> >> > <GPhys grid=<2D grid <axis pos=<'x' float[144] val=[0.0,2.5,5.0,7.5,...]>>
> >> >         <axis pos=<'y' float[17] val=[20.0,17.5,15.0,12.5,...]>>>
> >> >    data=<'hogehoge' sfloat[144, 17] val=[31867783168.0,32369766400.0,33796042752.0,31745796096.0,...]>>
> >> > ------------------------------------------------------------------
> >> 
> >> frst.average(0) とした時点で, 平均されて1次元データになっているので,
> >> 次に .average(1) としても, 2次元目がないのでエラーになっているように
> >> 見えます.
> >> 
> >> frst.average(0).average(0) とするとうまくいくのではないでしょうか.
> 
> frst.average(0).average(0) をやってみたのですが, 
> 
> ---------------------------------------------------------------------------
> /usr/lib/ruby/1.8/numru/gphys/gphys.rb:456:in `initialize': 1st arg not a Grid (ArgumentError)
>         from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:597:in `new'
>         from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:597:in `average'
>         from hogehoge.rb:52
> ---------------------------------------------------------------------------
> 
> となって, 残念ながらうまくいきません. 
> 
> p frst.average(0)
> 
> をして, 1D データになっている(↓)ことは確認できました. 
> 
> ---------------------------------------------------------------------------
> <GPhys grid=<1D grid <axis pos=<'y' float[17] val=[20.0,17.5,15.0,12.5,...]>>>
>    data=<'hogehoge' float[17] val=[13383312256.9301,17245254876.3357,21292573840.3199,24609746814.3287,...]>>
> ---------------------------------------------------------------------------
> 
> >> frst.mean(0,1) のほうは, 一気に平均しているので, うまくいっているのだ
> >> と思います. frst.mean(0).mean(1) とすれば, 同じエラーになるはずです.
> 
> はい. 同じエラーになりました. 
> 
> --
> Hiroshi Taniguchi (Disaster Prevention Research Institute, Kyoto University)
> e-mail: taniro@xxxxxxxxxxxxxxxxxxxxxxx Fx:+81-774-38-4153 Ph:+81-774-38-4155
> 

堀之内 武                      horinout@xxxxxxxxxxxxxxxxxx
京都大学生存圏研究所                 611-0011 宇治市五ヶ庄