如何画分布密度?如下图所示:
x轴是海明距离,y轴是分布密度。我写一个函数,输入为海明距离hd。
function out = YanMiDu(hd)
xMin = min(hd);
xMax = max(hd);
x = linspace(xMin, xMax, 20); %将最大值 最小值区间分成19个小段
y = hist(hd,x); %计算各个区间,hd出现的次数
y = y/length(hd); %hd是个行向量,length计算个数.换算成百分比
如果想画bar壮概率密度,则用下面语句:
bar(x,y)
如果画分布函数:
s = 0;
for i=2:length(x)
s=[s,trapz(x([1:i]),y([1:i]))];
end
figure;
plot(x,s,x,s,'*')
如果曲线需要拟合:
a= polyfit(x,y,2);
yy= polyval(a, x);
plot(x, yy); %拟合后的曲线
注意:有时候曲线不闭合,就是在x轴最大值的地方,没有闭合。在x = linspace(xMin, xMax, 20);
可以将其改为:x = linspace(xMin, xMax+0.01, 20);
xMax加的那个0.01就是为了让曲线闭合,更好看!当然参数根据自己的需要设。