我想在高斯和均勻分佈中使用matlab生成數字。 我知道這個函數randi
和rand()
但他們都是正常(高斯)分佈。怎樣才能生成均勻分佈的隨機數字?在matlab中使用高斯和均勻分佈的隨機數
回答
爲0和1
之間的均勻分佈使用randn(dimensions) * sqrt(sigma) + mu
用於高斯分佈與畝一個均值和方差西格瑪使用rand(dimensions)
。
'randnrm' **在matlab 2011中不是有效函數** :( – zhilevan
好的,只是在r2011a上更新和測試。 – chriswynnyk
標準偏差和方差是不同的東西,答案目前是錯誤的。這裏有另一個答案是正確的。 – mmgp
randn
是產生高斯分佈變量(randi
和rand
產生均勻分佈的變量)的函數。
不,如果你嘗試在matlab 2011中幫助'randn'看到這個幫助randn RANDN正態分佈的僞隨機數。 R = RANDN(N)返回一個N乘N矩陣,其中包含來自標準正態分佈的 的僞隨機值。 RANDN(M,N)或RANDN([M,N])返回 M乘N矩陣。 RANDN(M,N,P,...)或RANDN([M,N,P,...])返回一個N×P-by -...數組。 RANDN返回一個標量。 RANDN(SIZE(A))返回 與A相同的數組。 注意:大小輸入M,N,P ...應爲非負整數。 負整數被視爲0. – zhilevan
是的。通常意味着「高斯」。正如其他人所說的,你需要rand和randn。 – Pete
@zhilevan:正態分佈也稱爲高斯分佈。 – Jonas
您可以生成從蘭特任何分配()。
例如,假設您想要爲rayleigh dist生成100000個樣本。要做到這一點的方法是您反轉該特定函數的cdf。基本思想是由於cdf必須介於0和1之間我們可以通過輸入CDF的值b/W 0和1.找到隨機變量的值,所以對於瑞利,這將是
for i = 1:100000
data(i) = (2*sigma^2 *(-(log(1 - rand(1,1)))))^.5;
end
你可以做高斯分佈類似的東西。
在一行中:'sigma = 3; tmp =(2 * sigma^2 *( - (log(1-rand(1e6,1)))))。^。5; hist(tmp,100)'。 – randomatlabuser
繼Raj的回答:使用箱穆勒變換可以生成獨立的標準正態/高斯隨機數:
N = 1e6; z = sqrt(-2*log(rand(N, 1))) .* cos(2*pi * rand(N, 1)); figure; hist(z, 100)
N = 1e6; z = sqrt(-2*log(rand(N, 1))) .* sin(2*pi * rand(N, 1)); figure; hist(z, 100)
如果你想申請的逆變換法,您可以使用反互補誤差函數(erfcinv):
N = 1e6; z = -sqrt(2) * erfcinv(2 * rand(1e6, 1)); figure; hist(z, 100)
但我希望randn
效果更好。
- 1. 隨機均勻分佈
- 2. 隨機均勻分佈
- 3. 均勻分佈的隨機數
- 4. 均勻分佈的隨機數生成
- 5. 非均勻分佈的隨機數組
- 6. 隨機數,具有不均勻分佈
- 7. 通過Matlab創建一個均勻分佈的隨機變量
- 8. 隨機點不是均勻分佈
- 9. OpenCL中的高斯分佈隨機數
- 10. 在Windows批處理中隨機數的均勻分佈
- 11. DB2中的隨機函數不是均勻分佈的
- 12. <random>隨機數發生器和均勻分佈
- 13. 生成均勻分佈的僞隨機數在C++
- 14. 在分佈式環境中生成均勻分佈的隨機數
- 15. 隨機double和高斯分佈
- 16. 使隨機數均勻在C++
- 17. 僞隨機選擇均勻分佈的數據
- 18. 從均勻分佈生成隨機數的最快方法python
- 19. 長時間均勻分佈的隨機數
- 20. 隨機數是不是真的均勻分佈
- 21. 具有均勻分佈數量級結果的PHP隨機INT
- 22. 生成一個非均勻分佈的隨機數
- 23. 創建一組均勻分佈的隨機數
- 24. 如何獲得均勻分佈的隨機數?
- 25. 製作CURAND從均勻分佈生成不同的隨機數
- 26. 不同位數的隨機值均勻分佈
- 27. 用於生成均勻分佈的隨機位集的方法
- 28. Python中均勻分佈的隨機字符串
- 29. R中均勻分佈的隨機子樣本
- 30. 均勻分佈在一個平截頭體內的隨機點
正態分佈*是*高斯分佈。 – jerad
@zhilevan:我是否在最新的答案中閱讀了您的想法? – mmgp
@mmgp,tnx你的注意力,是的,我讀過它 – zhilevan