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

[dennou-ruby:002781] mean vs average



谷口と申します. 

gphys-0.5.4 を使っております. 

mean と average の両メソッドの使用に関する質問です. 

mean(0,1) (1,2次元の単純平均)メソッドを用いるとエラー無く計算できるの
ですが, average(1).average(0) 平均メソッドを用いると, 以下のエラーが表
示され計算できません. 

------------------------------------------------------------------
/usr/lib/ruby/1.8/numru/gphys/grid.rb:543:in `ax_dim': rank=1: 1th grid does not exist (ArgumentError)
   from /usr/lib/ruby/1.8/numru/gphys/grid.rb:524:in `average'
   from /usr/lib/ruby/1.8/numru/gphys/gphys.rb:596:in `average'
   from hogehoge.rb:52
------------------------------------------------------------------

というエラーが表示されます. 具体的には以下のような gphys データをこし
らえて計算させようとしています. 

------------------------------------------------------------------
require "narray"
require "numru/ggraph"
require "numru/dcl"

include NumRu
include Math

...

gphysA = GPhys::IO.open(ofile1, 'hogehoge')
gphysB = GPhys::IO.open(ofile2, 'hogehoge')

gphysAc1=gphysA.cut( 0..360, -20..20, 200, 0 ) # t=1 の A データ
gphysBc1=gphysB.cut( 0..360, -20..20, 200, 0 ) # t=1 の B データ
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,...]>>
------------------------------------------------------------------

と表示され, 計算させようとしている gphys データ中に grid データは存在
しています. エラーで注意されている

1th grid does not exist (ArgumentError)

の意味が理解できておりません. 

素人質問で恐縮ですが, 何か手がかりを教えて頂ければ幸いです. 
宜しくお願いいたします. 

--
Hiroshi Taniguchi (Disaster Prevention Research Institute, Kyoto University)
e-mail: taniro@xxxxxxxxxxxxxxxxxxxxxxx Fx:+81-774-38-4153 Ph:+81-774-38-4155