• 大小:
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-06
  • 语言: Matlab
  • 标签: Matlab  Kmeans  

资源简介

K-means聚类算法的Matlab程序-附注释

资源截图

代码片段和文件信息

function [idxbest CbesttotsumDbestZbest] = myKmeans(kstart)
%idxbest:最优解的索引
%Cbest:最优解的聚类中心
%totsumDbest:最优解的所有类内距离和的总和,即准则函数的值
%X为样本参数矩阵
%k为聚类个数
%start人为选择的初始聚类中心的样本点的编号向量
if (k<1||k~=size(start2)||k>30)
    errordlg(‘输入的参数不合法,请重新输入!‘‘错误提示‘);
end

load Wm.txt;
X=Wm(:2:3);
maxit=100;%所允许的最大迭代次数
[n p] = size(X);%矩阵X的行列数
totsumD = 0;%最优解的所有类内距离和的总和,即准则函数的值
iter = 0;%初始迭代次数
C = X(start:);%作为初始聚类中心的样本点的参数信息矩阵
ClusterBest= cell(31);%定义元胞数组,存放最后聚类的结果
ClusterBest=loopBody();%获取最后结果(调用了循环体函数)
  
%所输出的结果对应以上所定义的元胞数组的内容
idxbest = ClusterBest{3};
Cbest = ClusterBest{2};
totsumDbest = ClusterBest{1};
Zbest= Iterresult(idxbestiterCbesttotsumDbest);


 function cellout = loopBody()%循环体函数(类似于主函数)
     
 cellout = cell(31);         
                            

评论

共有 条评论