function[R]=F_JlR(cs,X)
%%模糊聚类分析建立模糊相似矩阵
%%X,数据矩阵
%%cs=1,数量积法
%%cs=2,夹角余弦法
%%cs=3,相关系数法
%%cs=4,指数相似系数法
%%cs=5,最大最小法
%%cs=6,算术平均最小法
%%cs=7,几何平均最小法
%%cs=8,直接欧几里得距离法
%%cs=9,直接海明距离法(绝对值减数法)
%%cs=10,直接切比雪夫距离法
%%cs=11,倒数欧几里得距离法
%%cs=12,倒数海明距离法(绝对值倒数法)
%%cs=13,倒数切比雪夫距离法
%%cs=14,指数欧几里得距离法
%%cs=15,指数海明距离法(绝对值指数法)
%%cs=16,指数切比雪夫距离法
[n,m]=size(X);%%获得矩阵的行列数
R=[];
if(cs==1)maxM=0;pd=0;%%数量积法
for(i=1:n)for(j=1:n)if(j~=i)x=0;
for(k=1:m)x=x+X(i,k)*X(j,k);end
if(maxM<x)maxM=x;end
end;end;end
if(maxM<0.000001)return;end
maxM=maxM+1;
for(i=1:n)for(j=1:n)
if(i==j)R(i,j)=1;
else R(i,j)=0;
for(k=1:m)R(i,j)=R(i,j)+X(i,k)*X(j,k);end
R(i,j)=R(i,j)/maxM;
if(R(i,j)<0)pd=1;end
end
end;end
if(pd)for(i=1:n)for(j=1:n)R(i,j)=(R(i,j)+1)/2;end;end;end
elseif(cs==2)%%夹角余弦法
for(i=1:n)for(j=1:n)xi=0;xj=0;
for(k=1:m)xi=xi+X(i,k)^2;xj=xj+X(j,k)^2;end
s=sqrt(xi*xj);R(i,j)=0;
for(k=1:m)R(i,j)=R(i,j)+X(i,k)*X(j,k);end
R(i,j)=R(i,j)/s;
end;end
elseif(cs==3)%%相关系数法
for(i=1:n)for(j=1:n)xi=0;xj=0;
for(k=1:m)xi=xi+X(i,k);xj=xj+X(j,k);end
xi=xi/m;xj=xj/m;xis=0;xjs=0;
for(k=1:m)xis=xis+(X(i,k)-xi)^2;xjs=xjs+(X(j,k)-xj)^2;end
s=sqrt(xis*xjs);R(i,j)=0;
for(k=1:m)R(i,j)=R(i,j)+abs((X(i,k)-xi)*(X(j,k)*xj));end
R(i,j)=R(i,j)/s;
end;end
elseif(cs==4)%%指数相似系数法
for(i=1:n)for(j=1:n)R(i,j)=0;
for(k=1:m)xk=0;
for(z=1:n)xk=xk+X(z,k);end
xk=xk/n;sk=0;
for(z=1:n)sk=sk+(X(z,k)-xk)^2;end
sk=sk/n;R(i,j)=R(i,j)+exp(-0.75*((X(i,k)-X(j,k))/sk)^2);
end
R(i,j)=R(i,j)/m;
end;end
elseif(cs<=7)%%最大最小法 算术平均最小法 几何平均最小法
for(i=1:n)for(j=1:n)fz=0;fm=0;
for(k=1:m)
if(X(j,k)<0)R=[];return;end
if(X(j,k)<X(i,k))x=X(i,k);
else x=X(j,k);end
fz=fz+x;
end
if(cs==5)%%最大最小法
for(k=1:m)if(X(i,k)>X(j,k))x=X(i,k);else x=X(j,k);end;end
fm=fm+x;
elseif(js==6)for(k=1:m)fm=fm+(X(i,k)+X(j,k))/2;end%%算术平均最小法
else for(k=1:m)fm=fm+sqrt(X(i,k)*X(j,k));end;end%%几何平均最小法
R(i,j)=fz/fm;
end;end
elseif(cs<=10)C=0;%%直接距离法
for(i=1:n)for(j=i+1:n)d=0;
if(cs==8)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d)%欧几里得距离
elseif(cs==9)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%%海明距离
else for(k=1:m)if(d<abs(X(i,k)-X(j,k)))d=abs(X(i,k)-X(j,k));end;end;end%%切比雪夫距离
if(C<d)C=d;end
end;end
C=1/(1+C);
for(i=1:n)for(j=1:n)d=0;
if(cs==8)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%%欧几里得距离
elseif(cs==9)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%%海明距离
else for(k=1:m)if(d<abs(X(i,k)-X(j,k)))d=abs(X(i,k)-X(j,k));end;end;end%%切比雪夫距离
R(i,j)=1-C*d;
end;end
elseif(cs<=13)minM=lnf;%%倒数距离法
for(i=1:n)for(j=i+1:n)d=0;
if(cs==11)for(k=1:m)d=d+(X(j,k)-X(j,k))^2;end
d=sqrt(d);%欧几里得距离
elseif(cs==12)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%%海明距离
else for(k=1:m)if(d<abs(X(i,k)-X(j,k)))d=abs(X(i,k)-X(j,k));end;end;end%%切比雪夫距离
if(minM>d)minM=d;end
end;end
minM=0.9999*minM;
if(minM<0.000001)return;end
for(i=1:n)for(j=1:n)d=0;
if(j==i)R(i,j)=1;continue;end
if(cs==11)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%%欧几里得距离
elseif(cs==12)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%%海明距离
else for(k=1:m)if(d<abs(X(i,k)-X(j,k)))d=abs(X(i,k)-X(j,k));end;end;end%%切比雪夫距离
R(i,j)=minM/d;
end;end
else for(i=1:n)for(j=1:n)d=0;%%指数距离法
if(cs==14)for(k=1:m)d=d+(X(i,k)-X(j,k))^2;end
d=sqrt(d);%%欧几里得距离
elseif(cs==15)for(k=1:m)d=d+abs(X(i,k)-X(j,k));end%%海明距离
else for(k=1:m)if(d<abs(X(i,k)-X(j,k)))d=abs(X(i,k)-X(j,k));end;end;end%%切比雪大距离
R(i,j)=exp(-d);
end;end;end