2013-07-17 60 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

相关问题