首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

AP聚类算法的matlab部分程序,求解释!解决方案

2013-01-25 
AP聚类算法的matlab部分程序,求解释!% Compute responsibilitiesR(i,k)S(i,k)-max{A(i,j)+S(i,j)} j1,2,

AP聚类算法的matlab部分程序,求解释!
% Compute responsibilities   R(i,k)=S(i,k)-max{A(i,j)+S(i,j)} j=1,2,3,……N,j!=k

       for ii=1:N            %ii为公式中的k
old = R(:,ii);
AS = A(:,ii) + ST(:,ii);    % 列向量 
                [Y,I]=max(AS);              % I返回最大值的index 
                AS(I)=-Inf;             
[Y2,I2]=max(AS);            %
R(:,ii)=ST(:,ii)-Y;
R(I,ii)=ST(I,ii)-Y2;
R(:,ii)=(1-lam)*R(:,ii)+lam*old;% Damping
end;

请问这里为什么要要取次大值呢,且公式中的j!=k在哪里体现出来了?
[解决办法]
  [Y,I]=max(AS); % I返回最大值的index 
  AS(I)=-Inf;  
[Y2,I2]=max(AS); %
R(:,ii)=ST(:,ii)-Y; % 这里做减法用的是是最大值
R(I,ii)=ST(I,ii)-Y2; % 次最大值只用在ii列的原最大值那一行的那一个元素

多贴点代码,这里看不出j!=k和为什么要用用次最大值处理原最大值对应的元素

热点排行