clc clear close all tic %先形成初始点 center=[1,1,1,1,1;10,10,10,10,10;100,100,100,100,100;1000,1000,1000,1000,1000]; % center=[1;10;100;1000]; dataN=50000;% 生成多少个数据 Dim=5; clusterN=100; data=zeros(Dim,dataN); % data=[11,101,1001,1,2,3]; for I=1:dataN i=round(1+(4-1)*rand()); data(:,I)=center(i)*( -1+(1+1)*rand(Dim,1)); end data=rand(Dim,dataN); SetS=[1;]; for clusterI=1:clusterN-1 maxG=-100*ones(dataN,1); for cluster=1:dataN if sum(ismember(cluster,SetS))>0 continue end %选一个候选数据 cddtI=cluster; cadSetS=[SetS;cddtI;]; Cij=0; for J=1:dataN if sum(ismember(J,cadSetS))>0 continue end d=data(:,J); %寻找最短距离 minD=1e20; for D=1:length(SetS)%between j and the closest object in S. % if J==cadSetS(D) % continue % end distance=sum((d-data(:,SetS(D))).^2).^.5; if distanceminD Kjih=min([distanceHJ-minD,0]); end if distanceIJ