簡體   English   中英

根據 Matlab 中的理論高斯曲線繪制高斯樣本

[英]Plotting a gaussian sample against theoretical gaussian curve in Matlab

我正在運行一些關於高斯過程的基本示例。

我想手動生成一個帶有高斯過程樣本的向量,然后是 plot 它們。

首先,我創建一個高斯分布和一個樣本向量s

% CLEAR ALL
clear all
close all

% CREATE GAUSSIAN PROCESS
mu = 2
sigma = 1
d = makedist('Normal','mu',mu,'sigma',sigma);

% CREATE SAMPLE OF ABOVE GAUSSIAN PROCESS
s = random(d, [1000, 1]);

然后我 plot 直方圖中的樣本:

% DISPLAY HOW DISTRIBUTION LOOKS LIKE
figure('Name', 'PDF')
title('GAUSSIAN DISTRIBUTION \mu=2 and \sigma=1')
histogram(s,100); hold on;

% DISPLAY HOW DISTRIBUTION SHALL LIKE
gauss_x = -5:0.01:5
gauss_y = ...
    (1/(sigma*sqrt(2*pi))) ...
    *exp( ...
    (-1/2)*((gauss_x-mu)/sigma).^2 ...
    )
plot(gauss_x, gauss_y); hold off;

由於面積未歸一化為 1,因此mu=2sigma=1的理論高斯 plot 出現在低得多的比例。

情節1

我嘗試使用Normalization參數對該區域進行規范化:

% NORMALIZE SAMPLE
figure('Name', 'PDF NORMALISED')
title('GAUSSIAN DISTRIBUTION \mu=2 and \sigma=1 NORM.')
histogram(s,100, 'Normalization','probability'); hold on;
plot(gauss_x, gauss_y); hold off;

但是我仍然沒有得到預期的結果,即直方圖與理論曲線一起縮放。

情節2

我錯過了什么? 是否與未正確理解Normalization參數有關,還是我遺漏了與數學高斯概率本身相關的內容?

問題確實是Normalization的設置。 嘗試:

histogram(s,100, 'Normalization','pdf')

歸一化“pdf”將考慮 bin 的寬度並確保直方圖下方的面積等於 1(因此允許在相同比例下與 pdf 進行比較)。 選項“概率”還沒有考慮面積,只是使直方圖的條形高度加到 1。更多細節可以在 Matlab 的幫助中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM