k均值算法的MATLAB实现

这篇博客提供了一个MATLAB函数zzhKmean,用于实现K均值聚类算法。代码中首先初始化聚类中心,然后通过迭代更新中心位置和分配数据点至最近的中心,直到聚类稳定。最后,使用主程序展示了将50个二维随机数据点分为3类的过程,并用不同颜色的加号可视化结果。
摘要由CSDN通过智能技术生成

没有时间详细写了,直接贴代码吧。

%%%%%函数

function [index]=zzhKmean(x,num)
nData=size(x,1);
index=zeros(1,nData);
center=zeros(num,2);
for n=1:nData
    index(n)=ceil(num*rand(1));
end
jud=1;
while jud==1
    jud=0;
    for n=1:num
        center(n,1)=mean(x(find(index==n),1));
        center(n,2)=mean(x(find(index==n),2));
    end
    for n=1:nData
        ind=index(n);
        dist=zeros(1,num);
        Xn=x(n,:);
        for m=1:num
            dist(m)=norm(Xn-center(m,:));
        end
        indShould=find(dist==min(dist));
        if indShould~=ind
            jud=1;
            index(n)=indShould;
        end
    end

end

%%%%%%%%%%%


%%%%%%%主程序,令k=3

x=rand(50,2);

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值