⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getdistance.m

📁 用matlab实现聚类算法
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 函数名称 GetDistance(pattern1,pattern2,type)
% 参数 pattern1:样品(或聚类中心)1结构
%              pattern2:样品(或聚类中心)2结构
% type:距离模式 1:欧氏距离;2:夹角余弦距离; 3:特征值是二值时的夹角余弦距离
% 返回值       result:距离

function [result]=GetDistance(pattern1,pattern2,type)
result=0;
[m,n]=size(pattern1);
switch(type)
    case 1
        result=sum((pattern1.feature-pattern2.feature).^2);
        result=sqrt(result);
    case 2
        a=0;
        b1=0;
        b2=0;
        for i=1:m
            for j=1:n
                a=a+pattern1.feature(i,j)*pattern2.feature(i,j);
                b1=b1+pattern1.feature(i,j)*pattern1.feature(i,j);
                b2=b2+pattern2.feature(i,j)*pattern2.feature(i,j);
            end
        end
        if(b1*b2~=0)
            result=a/sqrt(b1*b2);
        else
            result=-1;
        end
    case 3
        t1=zeros(m,n);
        t2=zeros(m,n);
        a=0;
        b1=0;
        b2=0;
        for i=1:m
            for j=1:n
                if(pattern1.feature(i,j)>0.2)
                    t1(i,j)=1;
                end
                if(pattern2.feature(i,j)>0.2)
                    t2(i,j)=1;
                end
                a=a+t1(i,j)*t2(i,j);
                b1=b1+t1(i,j)*t1(i,j);
                b2=b2+t1(i,j)*t2(i,j);
            end
        end
        if(b1*b2~=0)
            result=a/sqrt(b1*b2);
        else
            result=-1;
        end
    case 4
        t1=zeros(m,n);
        t2=zeros(m,n);
        a=0;
        b1=0;
        b2=0;
        for i=1:m
            for j=1:n
                if(pattern1.feature(i,j)>0.2)
                    t1(i,j)=1;
                end
                if(pattern2.feature(i,j)>0.2)
                    t2(i,j)=1;
                end
                a=a+t1(i,j)*t2(i,j);
                b1=b1+t1(i,j)*t1(i,j);
                b2=b2+t1(i,j)*t2(i,j);
            end
        end
        if(b1+b2-a~=0)
        result=a/(b1+b2-a);
        else
            result=-1;
        end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -