【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx

上传人:聆听****声音 文档编号:425581 上传时间:2023-04-28 格式:DOCX 页数:3 大小:14.42KB
下载 相关 举报
【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx_第1页
第1页 / 共3页
【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx_第2页
第2页 / 共3页
【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx

《【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx(3页珍藏版)》请在冰点文库上搜索。

【最新】C语言代码模式识别——最大最小距离分类法Word格式文档下载.docx

//f:

聚类中心个数;

b[]用于记录与聚类中心最大距离的

点标号;

dd[][]:

在循环体中记录各点与聚类中心距离

floatw[100][100],dd[100][100],Q,max1,max2,distance[100];

//distance[]:

记并求

出录第二个聚类点

b[0]=0;

printf("

最大最小距离分类法\n\n"

);

请输入坐标数N"

scanf("

%d"

&

N);

请输入各点的坐标:

\n"

for(i=0;

i<

N;

i++)

x[i][0]=i+1;

//x[0[0]=1,x[1][0]=2...

for(j=1;

j<

=2;

j++)//x数组为三列数组其中第一列用来编号记录个点编号从1

开始x1,x2。

如x[3][3]={{1,0,0},{2,3,8},{3,2,2}}

x[i][j]);

}

输入的点为\n"

i++)//打印输出输入的点坐标

x%d:

"

x[i][0]);

{%d,%d}"

x[i][1],x[i][2]);

z[0][0]=x[0][0],z[0][1]=x[0][1],z[0][2]=x[0][2];

\n取输入的第一个点为第一聚类中心

z%d:

{%d,%d}\n"

x[0][0],x[0][1],x[0][2]);

i++)//循环计算各点到z1的距离

distance[i]=sqrt((x[i][1]-z[0][1])*(x[i][1]-z[0][1])+(x[i][2]-z[0][2])*(x[i]

[2]-z[0][2]));

第%d个点(%d,%d)到z%d(%d,%d)的距离

是%f\n"

(i+1),x[i][1],x[i][2],z[0][0],z[0][1],z[0][2],distance[i]);

max1=distance[0];

for(j=0;

=N;

j++)

if(distance[j]>

max1)

{max1=distance[j];

flag=j;

b[f]=flag;

到z%d{%d,%d}距离最远的点(既聚类点)是

(%d,%d)\n"

z[0][0],z[0][1],z[0][2],x[flag][1],x[flag][2]);

Q=C*max1;

阈值Q是%f\n"

Q);

while(k!

=0)

=f;

各点到各聚类中心距离为\n"

dd[i][j]=(float)sqrt((x[i][1]-x[b[j]][1])*(x[i][1]-x[b[j]][1])+(x[i][2]-x[b[

j]][2])*(x[i][2]-x[b[j]][2]));

%f"

dd[i][j]);

}printf("

i++)//找出各点到聚类中心距离的最小值

{w[i][0]=dd[i][0];

if(w[i][0]>

=dd[i][j])//if(w[i][0]>

dd[i][j]不对这样会导致最后打印不

出第一类的各点

{w[i][0]=dd[i][j];

w[i][2]=j;

w[i][1]=i;

各坐标点到聚类中心最小距离是\n"

printf("

%f\n"

w[i][0]);

max2=w[0][0];

if(max2<

w[i][0])

{max2=w[i][0];

h=i;

if(max2>

Q)

f=f+1;

b[f]=h;

\n由于到聚类中心距离中有比阈值大的新聚类中心产生"

h+1,x[h][1],x[h][2]);

else

各坐标点到聚类中心距离均小于阈值%f,分类结束\n"

k=0;

一共产生%d类聚类中心\n"

f+1);

{printf("

第%d类聚类中心包含坐标有"

i+1);

if(w[j][2]==i)

{printf("

(%d,%d)"

j+1,x[j][1],x[j][2]);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2