k=2;
n=200;
c0=zeros(k,2);
c0(1,:)=[ -0.7337,-1.6931];
c0(2,:)=[2.6960,1.9875];
c=zeros(k,2);
x1=normrnd(0,1,[100,2]);
x2=normrnd(3,0.5,[100,2]);
x=[x1;x2];
D=zeros(k,n);
e=10^(-5);
r=0;
m=2.5;
s=2/(m-1);
while(norm(c-c0,'fro')>e)
c=c0;
for i=1:k
for j=1:n
D(i,j)=norm(c0(i,:)-x(j,:));
end
end
[md,N]=min(D);
U=zeros(k,n);
for j=1:n
if md(j)==0
U(N(j),j)=1;
else md(j)>0
for i=1:k
p=sum(D(i,j)^s);
q=k*D(i,j)^s;
U(i,j)=p/q;
end
end
end
U2=sum(U,2);
for i=1:k
for j=1:n
U1(i,j)=U(i,j)^s;
end
end
U2=U1*x;
U3=sum(U1,2);
U3=repmat(U3,1,k);
c0=U2./U3;
评论0