parent
6882c79711
commit
cad0a2c7d4
61
main.m
61
main.m
|
|
@ -3,34 +3,49 @@ clear
|
||||||
close all
|
close all
|
||||||
%先形成初始点
|
%先形成初始点
|
||||||
center=[1,1,1,1,1;10,10,10,10,10;100,100,100,100,100;1000,1000,1000,1000,1000];
|
center=[1,1,1,1,1;10,10,10,10,10;100,100,100,100,100;1000,1000,1000,1000,1000];
|
||||||
dataN=100;% 生成多少个数据
|
center=[1;10;100;1000];
|
||||||
data=zeros(5,dataN);
|
dataN=50;% 生成多少个数据
|
||||||
|
Dim=1;
|
||||||
|
data=zeros(Dim,dataN);
|
||||||
for I=1:dataN
|
for I=1:dataN
|
||||||
i=round(1+(5-1)*rand());
|
i=round(1+(4-1)*rand());
|
||||||
data(:,I)=center(i)*( -1+(1+1)*rand(5,1));
|
data(:,I)=center(i)*( -1+(1+1)*rand(Dim,1));
|
||||||
end
|
end
|
||||||
|
|
||||||
%选一个候选数据
|
|
||||||
cddtI=10;
|
SetS=[1;];
|
||||||
SetS=[];
|
|
||||||
SetS=[SetS;cddtI;];
|
for clusterI=1:3
|
||||||
Cij=0;
|
maxG=-100*ones(dataN,1);
|
||||||
for I=1:dataN
|
for cluster=1:dataN
|
||||||
if I==cddtI
|
if sum(ismember(cluster,SetS))>0
|
||||||
continue
|
|
||||||
end
|
|
||||||
d=data(:,I);
|
|
||||||
%寻找最短距离
|
|
||||||
minD=1e20;
|
|
||||||
for J=1:length(SetS)
|
|
||||||
if I==SetS(J)
|
|
||||||
continue
|
continue
|
||||||
end
|
end
|
||||||
distance=sum((d-data(:,SetS(J))).^2).^.5;
|
%选一个候选数据
|
||||||
if distance<minD
|
cddtI=cluster;
|
||||||
minD=distance;
|
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 distance<minD
|
||||||
|
minD=distance;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
distanceIJ=sum((d-data(:,cddtI)).^2).^.5;
|
||||||
|
Cij=Cij+max([minD-distanceIJ,0]);
|
||||||
end
|
end
|
||||||
|
maxG(cluster)=Cij;
|
||||||
end
|
end
|
||||||
distanceIJ=sum((d-data(:,cddtI)).^2).^.5;
|
maxGInd=find(maxG==max(maxG));
|
||||||
Cij=Cij+max([minD-distanceIJ,0])
|
SetS=[SetS;maxGInd(1)];
|
||||||
end
|
end
|
||||||
Loading…
Reference in New Issue