You are on page 1of 2

clc

clear
x=randn(2,100)-5;
y=randn(2,150);
z=randn(2,200)+5;
T=[x,y,z];
S=size(T);
Length_T=S(2);
plot(T(1,:),T(2,:),'bo');
hold on;
pause(1);

Z1=[0;1.4]; %Taking arbitrary group representatives


Z2=[2.3;5.8];
Z3=[6.9;7.8];

for k=1:30
Gc1=[zeros(2,Length_T)];
Gc2=[zeros(2,Length_T)];
Gc3=[zeros(2,Length_T)];
plot(Z1(1,1),Z1(2,1),'rs','linewidth',3);
plot(Z2(1,1),Z2(2,1),'gs','linewidth',3);
plot(Z3(1,1),Z3(2,1),'bs','linewidth',3);
hold off;

for j=1:Length_T %Grouping


N1m=norm(T(:,j)-Z1);
N2m=norm(T(:,j)-Z2);
N3m=norm(T(:,j)-Z3);

C=[N1m, N2m, N3m];

D=find(C==min(C));
if D==1
Gc1(:,j)=T(:,j);
elseif D==2
Gc2(:,j)=T(:,j);
elseif D==3

Gc3(:,j)=T(:,j);
end

end
pause(1);
plot(Gc1(1,:),Gc1(2,:),'ro');
hold on;
plot(Gc2(1,:),Gc2(2,:),'go');
hold on;
plot(Gc3(1,:),Gc3(2,:),'bo');

L1=nnz(Gc1)/2;
L2=nnz(Gc2)/2;
L3=nnz(Gc3)/2;

Z1=[sum(Gc1,2)]/L1; %Updating group representatives/centroids


Z2=[sum(Gc2,2)]/L2;
Z3=[sum(Gc3,2)]/L3;
end
RESULTS
Dataset taken: - Arbitrary centroids/group representatives

Iteration-1 Iteration-2(Centroids shifted & new groups formed)

Iteration-5 Final groups(Iteration 20)

NAME- SAURABH GUPTA (2022CRF2640)

You might also like