2012-10-27 103 views

回答

7

randn Matlab的生成從具有零均值和從任何其他正態分佈1. 樣品的標準偏差的正態分佈的實現可以簡單地通過產生:

numSamples = 1000; 
mu = 2; 
sigma = 4; 
samples = mu + sigma.*randn(numSamples, 1); 

可以通過繪製直方圖驗證這:

figure;hist(samples(:)); 

查看matlab help

3
N = 1000; 
x = [-20:20]; 
samples = 2 + 4*randn(N, 1); 
ySamples = histc(samples,x)/N; 
yTheoretical = pdf('norm', x, 2, 4); 
plot(x, yTheoretical, x, ySamples) 

randn(N, 1)創建N×1向量。

histc是在x給出倉的直方圖計 - 您可以使用hist立即繪製的結果,但在這裏,我們想通過N將其分攤。

pdf包含許多有用的PDF,正常只是一個例子。

0

記住這一點:X〜N(均值,方差)

randn在MATLAB產生正常分佈的隨機變量W的零均值和單位方差。 要將均值和方差改爲隨機變量X(用自定義平均值和方差),請遵循以下公式: X =平均值+標準偏差* W 請注意standard_deviation是方差的平方根。

N = 1000; 
x = [-20:20]; 
samples = 2 + sqrt(4)*randn(N, 1); 
ySamples = histc(samples,x)/N; 
yTheoretical = pdf('norm', x, 2, sqrt(4)); %put std_deviation not variance 
plot(x, yTheoretical, x, ySamples)