模式识别与智能计算第4章..doc
文本预览下载声明
例4.4
function y=fuz_closing(x,y,type)
n=length(x);
switch type
case 1
y=1-sum(abs(x-y))/n; %海明贴近度
case 2
y=1-(sum(x-y).^2)^(1/2)/sqrt(n); %欧几里德贴近度
case 3
y1=max(min(fuzinv(x),fuzinv(y)));
y2=max(min(x,y));
y=min(y1,y2); %格贴近度
end
例4.5
function y=fuz_distance(x,type)
[r,c]=size(x);
for i=1:r
for j=1:r
switch type
case 1 %欧氏距离
y(i,j)=0;for k=1:c; y(i,j)=y(i,j)+(x(i,k)-x(j,k))^2;end
case 2 %数量积
if i==j
y(i,j)=1;
else
y(i,j)=0;for k=1:c; y(i,j)=y(i,j)+x(i,k)*x(j,k);end
end
case 3 %相关系数
m=mean(x);
a1=0;a2=0;a3=0;
for k=1:c
a1=a1+abs((x(i,k)-m(k)))*abs((x(j,k)-m(k)));a2=a2+sqrt((x(i,k)-m(k))^2);
a3=a3+sqrt((x(j,k)-m(k))^2); y(i,j)=a1/(a2*a3);
end
case 4 %最大最小法
a1=0;a2=0;
for k=1:c
a1=a1+min(x(i,k),x(j,k));a2=a2+max(x(i,k),x(j,k));y(i,j)=a1/a2;
end
case 5 %几何平均法
a1=0;a2=0;
for k=1:c
a1=a1+min(x(i,k),x(j,k));a2=a2+sqrt(x(i,k)*x(j,k));y(i,j)=a1/a2;
end
case 6 %绝对指数法
y(i,j)=exp(-sum(abs(x(i,:)-x(j,:))));
case 7 %绝对值减数法
if i==j
y(i,j)=1;
else
y(i,j)=1-0.1*sum(abs(x(i,:)-x(j,:))); %0.1这个数值可以改变
end
end
end
end
for i=1:r;for j=1:r;a=max(max(y));
switch type
case 1
y(i,j)=1-sqrt(y(i,j))/a;
case 2
if i==j;continue;else;y(i,j)=y(i,j)/a;end
end
end
end
例4.7
function y=NO_3mf(x,params)
a =x_params(1); b =x_params(2); c =x_params(3); %a为二级标准值,b为三级标准值,c为四级标准值
y = zeros(size(x));
index = find(x==b); % 当测量
显示全部