作业帮 > 综合 > 作业

在Matlab中,如何产生区间在[-90 90]之间,满足高斯分布的随机数?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 16:28:02
在Matlab中,如何产生区间在[-90 90]之间,满足高斯分布的随机数?
在Matlab中,如何产生区间在[-90 90]之间,满足高斯分布的随机数?
matlab用randn生成(-inf,inf)区间内的标准高斯分布(μ = 0,σ = 1)的随机数,而且,一般来说,这样生成的随机数不会超出区间[-3,3],因为随机数在区间[-3,3]的概率为99.8%.那么在[-90,90]之间的概率呢?我没有算,想来应该会超过0.99999
所以你直接用randn生成随机数,不必担心会超出[-90,90].
但是你的目的恐怕不是这样的,你说清楚一些,也许能解决.
再问: 我想让我的机器人往他正前方随机走,不回头,每次可以有转弯,但是转弯的角度的绝对值不能超过90°,但是往正前方(0°)走的概率最大(所以要0均值)。综上所述,我要生成[-90,90]的类似于高斯分布的随机数。
再答: 哦,简单一点说,你不是一定要高斯分布的随机数,那么你可以用弧度制,用randn(1)生成随机数,然后判断生成的数是否在[-pi/2,pi/2]之间,如果在,那么就取它,如果不在,再用randn(1)生成随机数,再次判断,……,用一个while循环就好了。帮你写一下: while 1 a = randn(1); if a=-pi/2 break; end; end;