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

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部