• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

k均值算法的MATLAB实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

%%%%%函数

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);
index=zzhKmean(x,3);
x1=x(find(index==1),:);
x2=x(find(index==2),:);
x3=x(find(index==3),:);
plot(x1(:,1),x1(:,2),'r+');
hold on;
plot(x2(:,1),x2(:,2),'b+');
hold on;

plot(x3(:,1),x3(:,2),'g+');

%%%%%%%%%%

结果如图



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB基本操作之画图发布时间:2022-07-18
下一篇:
现代法谱估计(2)Levinson-Durbin递推算法MATLAB及Python实现发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap