用matlab画正态概率密度分布图,为什么把所有的值加起来,不等于1呢?

程序用的是
x=-3:0.2:3;
y=normpdf(x,0,1);
plot(x,y)
我是直接把每个y值,用sum加起来。
为什么要乘以0.2?matlab里面的normpdf这个函数的原理是什么呢?我以为取的x为离散的值,直接就加起来该等于1了?
另外,如果我的x的取值不是均匀分布的,而是很随机的值,就不能再直接乘以一个间距了。那我要如何处理,才能让我的sum为1呢?

你怎么加的?
0.2乘了么?
sum(y)*.2

normpdf就是正态分布的概率密度函数啊,你要算总概率就是要求这个函数到x轴之间的面积,就是积分啊,所以那里要乘0.2,其实这也不是精确的结果,而且因为你不是从-无穷大加到无穷大,而只是加了一部分,所以所得结果一定小于1.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-26
假设你数据时data,这里用正态分布随机数代替,
data=randn(10000,1);
[y,x]=hist(data,100);

%分为100个区间统计,(你可以改你需要的区间数)
y=y/length(data)/mean(diff(x));

%计算概率密度
,频数除以数据种数,除以组距
bar(x,y,1);

%用bar画图,最后的1是画bar图每条bar的宽度,默认是0.8所以不连续,改为1就可以了
相似回答