我想在高斯和均匀分布中使用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