• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > k均值算法c++语言实现代码

k均值算法c++语言实现代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++均值滤波,k均值算法,c均值算法,k均值算法 matlab,k均值聚类算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com


 #include <vector>
 #include <map>


 //空间点的定义
 class Node
 {
     public:
        double pos_x;
        double pos_y;
        double pos_z;
      Node()
      {
          pos_x = 0.0;
          pos_y = 0.0;
          pos_z = 0.0;
      }
      Node(double x,double y,double z)
      {
          pos_x = x;
          pos_y = y;
          pos_z = z;
      }
       friend bool operator < (const Node& first,const Node& second)
       {
          //对x轴的比较
          if(first.pos_x < second.pos_x)
          {
             return true;
          }
        else if (first.pos_x > second.pos_x)
          {
              return false;
        }
         //对y轴的比较
      else
      {
        if(first.pos_y < second.pos_y)
             {
                 return true;
             }
             else if (first.pos_y > second.pos_y)
             {
                return false;
             }
             //对z轴的比较
         else
         {
             if(first.pos_z < second.pos_z)
                 {
                     return true;
                 }
                 else if (first.pos_z >=  second.pos_z)
                 {
                    return false;
                 }
             }
      }
       }

       friend bool operator == (const Node& first,const Node& second)
       {
             if(first.pos_x == second.pos_x && first.pos_y == second.pos_y && first.pos_z == second.pos_z)
             {
                 return true;
             }
             else
             {
                 return false;
             }
       }
 };

 class KMean
 {
 private:
     int cluster_num;//生成的簇的数量。
     std:: vector<Node> mean_nodes;//均值点
     std:: vector<Node> data;//所有的数据点
     std:: map <int , std:: vector<Node> > cluster;//簇,key为簇的下标,value为该簇中所有点


     void Init();//初始化函数(首先随即生成代表点)
     void ClusterProcess();//聚类过程,将空间中的点分到不同的簇中
     Node GetMean(int cluster_index);//生成均值
     void NewCluster();//确定新的簇过程,该函数会调用ClusterProcess函数。
     double Kdistance(Node active,Node other);//判断两个点之间的距离

     public:
     KMean(int c_num,std:: vector<Node> node_vector);
     void Star();//启动k均值算法

 };
#endif // KMEAN_HEAD
</div>


 #include <vector>
 #include <map>


 //空间点的定义
 class Node
 {
     public:
        double pos_x;
        double pos_y;
        double pos_z;
      Node()
      {
          pos_x = 0.0;
          pos_y = 0.0;
          pos_z = 0.0;
      }
      Node(double x,double y,double z)
      {
          pos_x = x;
          pos_y = y;
          pos_z = z;
      }
       friend bool operator < (const Node& first,const Node& second)
       {
          //对x轴的比较
          if(first.pos_x < second.pos_x)
          {
  &

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • k均值算法c++语言实现代码

相关文章

  • 2017-05-28C语言中一些将字符串转换为数字的函数小结
  • 2017-05-28c++中inline的用法分析
  • 2017-05-28详解设计模式中的模板方法模式及在C++中的使用
  • 2017-05-28c 调用python出现异常的原因分析
  • 2017-05-28C++基础之this指针与另一种“多态”
  • 2017-05-28C语言位图算法详解
  • 2017-05-28使用C++制作简单的web服务器(续)
  • 2017-05-28Android App仿微信界面切换时Tab图标变色效果的制作方法
  • 2017-05-28浅谈C++的语句语法与强制数据类型转换
  • 2022-04-30C语言中的整数(short,int,long)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 养成良好的C++编程习惯之内存管理的应用详解
    • C++中虚函数与纯虚函数的用法
    • C++实现两个日期间差多少天的解决方法
    • Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程
    • 详解散列表算法与其相关的C语言实现
    • C++获取本机登陆过的QQ号码示例程序
    • C++入门之基础语法学习教程
    • 解析一个有关sizeof用法的题目--sizeof(i++)
    • C++中关键字Struct和Class的区别
    • 详解C++中的函数调用和下标以及成员访问运算符的重载

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有