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

📄 样品之间的距离.asv

📁 用聚类分析算法计算样本之间的距离
💻 ASV
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%函数名称   GetDistance(pattern1,pattern2,type)
%参数 pattern1:
%           pattern2:
%           type:距离模式 1;欧式距离;2:夹角余弦距离;3:特征是二值时
%                的夹角余弦距离;4:具有二值特征的Tanimoto测度
%返回值     result:距离
%函数功能    计算样品(或聚类中心)1和样品(或聚类中心)2间的距离,距离模式
%        由参数type给定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fouction[result]=GetDistance(pattern1,pattern2,type)
result=0;
global Nwidth;%特征矩阵的宽带,本书取7,即样品特征为7*7矩阵
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:Nwidth
            for j=1:Nwidth
                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=1-a/sqrt(b1*b2)
        else
            result=-1;
        end
    case 3 %二值夹角余弦
        t1=zeros(Nwidth,Nwidth);
        t2=zeros(Nwidth,Nwidth);
        a=0;
        b1=0;
        b2=0;
        for i=1:Nwidth
            for j=1:Nwidth
                if(pattern1.feature(i,j)>0.2)
                    t1(i,j)=1;
                end
                if(pattern2.feature(i,j)>0.2)
                    t2(i,j)=1;
                    endhj
                a=a+t1(i,j)*t2(i,j);

⌨️ 快捷键说明

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