0

MATLAB でヒストグラムにガウス フィットを追加しようとしていますが、特定の 1 つのピークのみにフィットを適用する方法がわかりません。

http://postimg.org/image/phms61rdh/最初のプロット

http://postimg.org/image/sindrn8er/ 2 番目のプロット

私が使用しているコードの一部も投稿しています:

    data_Rb = (importdata('path\name.txt'));
    counts_Rb = data_Rb.data(:,3);
    figure
    hist(counts_Rb, nbins);
    xlim([0 120]);
    title('Rubidium');
    histfit(counts_Rb,1000);

    pd=fitdist(counts_Rb(:),'normal')
    x=0:0.001:120;  
    PDF=pdf(pd,x); %PDF is a vector of y values: it's our fit
    PDF=PDF/max(PDF); %nor
    y=ylim;
    PDF=PDF*y(2);
    hold on
    plot(x,PDF,'r-','LineWidth',2);
    hold off

これらの 2 つのブロックは、最初の図に示すように、2 つの異なるガウス分布を示します。なぜそれらがデータにひどく適合するのか理解できません.RHSのテールが原因ですか?

2 番目のプロットでは、最後のピークのみにガウス フィットを適用する必要があります。どうすればいいですか?

最後に、フィットを適用した後、フィット結果が画面に出力されます。それらを後で使用するために配列などに保存する機能はありますか?

前もって感謝します!

4

1 に答える 1

0

最後の質問については、Statistics Toolbox の HISTFIT 関数から近似分布パラメーターにアクセスするにはどうすればよいですか? を参照してください。

HISTFIT 関数のコピーを作成し、「pd」変数を渡すようにコードを変更することで、この問題を回避できます。これを行う 1 つの方法は、コードの最初の行の "h" 出力を "varargout" に変更し、ファイルの最後に次を追加することです。

h = [hh; hh1];
argout={h,pd};
if nargout > length(argout)
error('Too many output arguments.');
end
[varargout{1:nargout}]=argout{1:nargout};
于 2013-11-08T01:54:23.760 に答える