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

📄 c_zuiduanjuli.m

📁 用matlab实现聚类算法
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 函数名称:C_ZuiDuanJuLi()
% 参数:m_pattern:样品特征库;patternNum:样品数目
% 返回值:m_pattern:样品特征库
% 函数功能:按照最短距离法对全体样品进行分类
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [m_pattern]=C_ZuiDuanJuLi(m_pattern,patternNum)
disType=DisSelDlg();%获得距离计算类型
T=InputThreshDlg(m_pattern,patternNum,disType);%获得阀值
%初始化,所有样品各分一类
for i=1:patternNum
    m_pattern(i).category=i;
end

while(true)
    minDis=inf;
    pi=0;
    pj=0;
    %寻找距离最近的两类pi、pj,记录最小距离minDis
    for i=1:patternNum-1
        for j=i+1:patternNum
            if(m_pattern(i).category~=m_pattern(j).category)
                tempDis=GetDistance(m_pattern(i),m_pattern(j),disType);
                if(tempDis<minDis)
                    minDis=tempDis;
                    pi=m_pattern(i).category;
                    pj=m_pattern(j).category;
                end
            end
        end
    end
    if(minDis<T)%距离小于阀值,合并pi、pj类
        if(pi>pj)%将较大类号归入较小类号
            temp=pi;
            pi=pj;
            pj=pi;
        end
        for i=1:patternNum
            if(m_pattern(i).category==pj)
                m_pattern(i).category=pi;
            elseif(m_pattern(i).category>pj)
                m_pattern(i).category=m_pattern(i).category-1;
            end
        end
    else
        break;
    end
end

            
    

⌨️ 快捷键说明

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