0

多数の固定幅ガウス分布を 1 つの広いピークに合わせようとしています。これを行うことができた唯一の方法は、peakfit.mを使用することです。サンプルデータはこちらからダウンロードできます。

オクターブで私が使用するコードは次のとおりです。

>>peakfit(data,90.5,3,3,11,0,0,0,0,[1,1,1],0,0)
ans =
  1.0000e+000  9.0012e+001  1.0185e+004  1.0000e+000  1.0749e+004
  2.0000e+000  9.0500e+001  9.3075e+003  1.0000e+000  9.9035e+003
  3.0000e+000  9.0988e+001  1.0186e+004  1.0000e+000  1.0749e+004

これらは、最初のデータセットを作成するために使用した 3 つのピークにかなり近いものです。

これらはoct2pyを使用したときの結果です

import oct2py as op
import numpy as np

data=np.loadtxt(file)

octave=op.Oct2Py()
octave.peakfit(data,90.5,3,3,11,0,0,0,0,[1,1,1],0,0)

#Out:
array([[    1,    91,  8873,     1, 14583],
       [    2,    88, 17314,     1,   400],
       [    3,    90, 11011,     1, 18459]])

両方のケースで単一のピークを当てはめた場合、結果は同じです。

オクターブ

 1.0000e+000  9.0500e+001  2.0576e+004  1.4670e+000  3.2130e+004

Oct2py

array([[  1.00000000e+00,   9.05000004e+01,   2.05763986e+04,
          1.46695147e+00,   3.21304879e+04]])

違いはどこから来るのでしょうか?

4

1 に答える 1

1

解決策を見つけました。oct2py で引数を float として渡さなければならないので、

octave.peakfit(data,90.5,3.0,3.0,11.0,0.0,0.0,0.0,0.0,[1.0,1.0,1.0],0.0,0.0)
于 2016-05-11T15:20:22.120 に答える