www.gusucode.com > k均值聚类算法源码(matlab)源码程序 > k均值聚类算法源码(matlab)源码程序/cluster.m

    function [ p_cluster ] = cluster(p_sample, k, feature_num, sample_num)
%UNTITLED1 Summary of this function goes here
%  Detailed explanation goes here

%初始化k个中心
p_cluster = p_sample(:,1:k);
p_cluster = p_cluster';%(p_cluster-500*51)

%进行迭代
for i=1:500
    p_dist = dist(p_cluster, p_sample);
    [Y, I] = min(p_dist);
    clear Y;
    %重新计算中心
    for j=1:k
        sum = zeros(feature_num,1);
        count = 0;
        for m=1:sample_num
            if(I(m) == j)
                sum = sum + p_sample(:,m);
                count=count+1;
            end
        end
        if(count > 0)
            sum = sum/count;
            p_cluster(k,:) = sum';
        end
    end
end
p_cluster = p_cluster';