Matlab:任意矩阵计算分布密度(海明距离的分布密度)

如何画分布密度?如下图所示:


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就是为了让曲线闭合,更好看!当然参数根据自己的需要设。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值