diff --git a/main.m b/main.m index 036d2b7..1ff6f70 100644 --- a/main.m +++ b/main.m @@ -3,34 +3,49 @@ clear close all %先形成初始点 center=[1,1,1,1,1;10,10,10,10,10;100,100,100,100,100;1000,1000,1000,1000,1000]; -dataN=100;% 生成多少个数据 -data=zeros(5,dataN); +center=[1;10;100;1000]; +dataN=50;% 生成多少个数据 +Dim=1; +data=zeros(Dim,dataN); for I=1:dataN - i=round(1+(5-1)*rand()); - data(:,I)=center(i)*( -1+(1+1)*rand(5,1)); + i=round(1+(4-1)*rand()); + data(:,I)=center(i)*( -1+(1+1)*rand(Dim,1)); end -%选一个候选数据 -cddtI=10; -SetS=[]; -SetS=[SetS;cddtI;]; -Cij=0; -for I=1:dataN - if I==cddtI - continue - end - d=data(:,I); - %寻找最短距离 - minD=1e20; - for J=1:length(SetS) - if I==SetS(J) + +SetS=[1;]; + +for clusterI=1:3 + maxG=-100*ones(dataN,1); + for cluster=1:dataN + if sum(ismember(cluster,SetS))>0 continue end - distance=sum((d-data(:,SetS(J))).^2).^.5; - if distance0 + 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 distance