资源简介
实现了把n个二维向量聚类,聚成m个部分,仅供参考。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
//把m个点分成n类
int nm;
int avxavyNodenum;
int flag;
double dist;
double mindist;
struct node{
double x;
double y;
};
typedef list NODELIST;
double culdist(node anode b){
return sqrt( (a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y) );
}
int main(){
ifstream in(“kmeans.txt“);
in>>n;
in>>m;
NODELIST init;
NODELIST::iterator i;
double XY;
while(!(m--)){
in>>X>>Y;
node temNode;
temNode.x = X;
temNode.y = Y;
init.push_back(temNode);
}
list K_means;
list::iterator jminj;
NODELIST temList;
flag = 0;
while(1){
//算中心
if(flag == 0){
i = init.begin();
for(int q=1;q<=n;++q){
temList.push_back(*i);
K_means.push_back(temList);
++i;
}
flag = 1;
}
else{
flag = 0;
node temnode;
for(j=K_means.begin();j!=K_means.end();++j){
avx = avy = 0;
Nodenum = 0;
while((*j).size()>1){//计算算新的中心
- 上一篇:计算两个YUV视频序列的PSNR
- 下一篇:在Qt中用C++编写的计算器程序
评论
共有 条评论