2013-07-17 59 views
0

在MATLAB中,我認爲randn返回一個隨機數,它屬於正態分佈,平均值爲0,標準偏差爲0.因此,我期望得到一個範圍(0,1)內的數字。但是我得到的是一個不在範圍內的數字(0,1)。爲什麼randn函數返回一個大於1的數字?

請讓我知道我錯了?

+0

*'randn'產生[正態分佈](https://en.wikipedia.org/wiki/Normal_distribution)隨機數具有零均值和單位** **標準偏差(_i.e_它等於1),該可以等於(可能)任何數字。 –

回答

12

您正在考慮統一分配。理論上,正態分佈的數字非常大,可能性非常低。 randn的平均值爲0,標準偏差爲1.正態分佈爲鐘形曲線/高斯形狀,相對於標準偏差,平均概率和概率下降的概率最高。

你在找什麼是rand - 這是一個統一的隨機分佈,它給出的數字在0到1之間,所有點的概率都是偶數。

+1

非常感謝 – John

5

其實randn輸出的標準偏差爲1,而不是零。這意味着獲得大於1的數字的概率是16%,並且獲得小於零的數字的概率是50%。

我想你與uniform distribution混淆normal distribution

2

混亂的另一種可能的來源:

normal distribution均值0方差1經常表示Ñ(0,1)。這有時稱爲標準正態分佈,並且意味着從所有實數中抽取樣本,即範圍(,+ ∞),其中平均值爲0和方差1。在這種情況下,標準偏差也是1,但是這個表示法指定了方差(很多這樣做)。變換Ñ(μ,σ )= μ + σ Ñ(0,1),其中μ是平均值,σ 是方差,並且σ是標準偏差,是非常有用的。

類似地,開放間隔(0,1)上的continuous uniform distribution通常表示爲U(0,1)。這通常被稱爲標準均勻分佈,並且意味着樣本從範圍(0,1)中均勻地繪製。類似地,變換ù(A,B)= A +(B −一個)ù(0,1),其中a和b表示標度間隔的邊緣,是有用的。

請注意,在這兩種情況下01除了作爲描述每個分佈的參數之外並不代表相同的事情。這兩個分佈採樣的範圍稱爲support

相關問題