matlab lbg,矢量量化中的LBG算法代码,求注释

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

function v=lbg(x,k) % lbg(x,k) 对输入样本x,分成k类。

% [v1 v2 v3 ...vk]=lbg(...)返回k个分类,其中vi为结构体,vi.num为该类中含有元素个数,vi.ele(i)为第i个元素值,vi.mea为相应类别的均值

[row,col]=size(x); % 读取输入矩阵x的大小,每一列为一个样本:记为col,每个样本有row个元素。

%u=zeros(row,k);%每一列为一个中心值

epision=0.03;%epision:选择一个小的扰乱系数(失真阈值)ɛ

delta=0.01; ???

%u2=zeros(row,k);

%LBG算法产生k个质心

u=mean(x,2);%第一个聚类质心,总体均值

for i3=1:log2(k) ????

u=[u*(1-epision),u*(1+epision)];%每个码字分裂(乘以扰乱系数1+ɛ和1-ɛ)为两个,这种每一次分裂后的码字数量就是前一次的两倍。

%time=0;

D=0; ???

DD=1; ???

while abs(D-DD)/DD>delta ???

DD=D; ???

for i=1:2^i3 %初始化过程

v(i).num=0; ???

v(i).ele=zeros(row,1); ???

end

%%%%%%%%%%%%%%%%求码本质心过程

for i=1:col %第i个样本

distance=dis(u,x(:,i));%第i个样本到各个质心的距离

[val,pos]=min(distance); ???

v(pos).num=v(pos).num+1;%元素的数量加1,加一有什么作用 ???

if v(pos).num==1 %ele为空 ,这句话什么意思???

v(pos).ele=x(:,i); ???

else

v(pos).ele=[v(pos).ele,x(:,i)]; ???

end

end

for i=1:2^i3

u(:,i)=mean(v(i).ele,2);%新的均值中心

for m=1:size(v(i).ele,2) ???

D=D+sum((v(i).ele(m)-u(:,i)).^2); ???

end

end

end

end

%u=u;

for i=1:k %更新数值

v(i).mea=u(:,i); ???

end

我打问号的都看不懂,有没有大神帮我一下,关乎到我的毕业问题,谢谢谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值