資源簡介
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);?????????
????????????????????????????
- 上一篇:基于MATLAB的視頻跟蹤
- 下一篇:灰色預測程序
評論
共有 條評論