私は100サンプルの数値を持っており、それらの正規分布曲線をmatlabに描画する必要があります。Matlabのサンプルの正規分布グラフを描画します
これらのサンプリングデータの平均と標準偏差は簡単に計算できますが、正規分布をプロットする関数はありますか?
私は100サンプルの数値を持っており、それらの正規分布曲線をmatlabに描画する必要があります。Matlabのサンプルの正規分布グラフを描画します
これらのサンプリングデータの平均と標準偏差は簡単に計算できますが、正規分布をプロットする関数はありますか?
あなたはStatistics Toolboxのへのアクセス権を持っている場合は、機能histfit
は、私はあなたが必要だと思うものを行います。
>> x = randn(10000,1);
>> histfit(x)
だけhist
コマンドと同じように、あなたはbinの数を指定することもできます。また、どのディストリビューションを使用するかを指定することもできます(デフォルトでは、正規分布)。
Statistics Toolboxをお持ちでない場合は、@ Guntherと@learnvstの回答を組み合わせて同様の効果を再現できます。
使用hist:
hist(data)
それはあなたのデータのヒストグラムプロットを描画します:
あなたはまた、例えば、描画するビンの数を指定することができます。
hist(data,5)
結果を描画する場合は、pdf、使用してそれを自分で作成します。
mu=mean(data);
sg=std(data);
x=linspace(mu-4*sg,mu+4*sg,200);
pdfx=1/sqrt(2*pi)/sg*exp(-(x-mu).^2/(2*sg^2));
plot(x,pdfx);
をあなたはおそらく、前hist
プロット上でこれをオーバーレイすることができ、私はあなたがしかし、最初のものを拡張する必要があると思う(、PDFは0〜1の範囲にあり、ヒストグラムはです範囲:ビンあたりの要素の数)。
データのガウス分布を描画する場合は、平均と標準偏差の値をデータセットから計算した値に置き換えて、次のコードを使用できます。
STD = 1;
MEAN = 2;
x = -4:0.1:4;
f = ( 1/(STD*sqrt(2*pi)) ) * exp(-0.5*((x-MEAN)/STD).^2 );
hold on; plot (x,f);
この例では、配列x
は、お使いのディストリビューションのx軸であるので、あなたが持っているものは何でも範囲とサンプリング密度にそれを変更します。
信号処理ツールボックスの助けを借りずにデータにガウスフィットを描画したい場合、次のコードは正しいスケーリングでそのようなプロットを描画します。 y
を自分のデータで置き換えてください。
y = randn(1000,1) + 2;
x = -4:0.1:6;
n = hist(y,x);
bar (x,n);
MEAN = mean(y);
STD = sqrt(mean((y - MEAN).^2));
f = ( 1/(STD*sqrt(2*pi)) ) * exp(-0.5*((x-MEAN)/STD).^2 );
f = f*sum(n)/sum(f);
hold on; plot (x,f, 'r', 'LineWidth', 2);
+1いいえ、正確にOPが探しているもの –
woow。私はこれを正確に探していました。ありがとう:) – ManiAm