该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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
我打问号的都看不懂,有没有大神帮我一下,关乎到我的毕业问题,谢谢谢谢