91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 128KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-04
  • 語言: C/C++
  • 標簽: 模式識別??

資源簡介

這是模式識別中經典的ISODATA算法,用戶交互輸入進行分類,C語言實現,效果很好

資源截圖

代碼片段和文件信息

//?ISODATA.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
#include?“stdio.h“
#include?“math.h“
#define??N?10
#define??eps???0.00001

struct?Pointf
{
int?sequence;
float?x;
float?y;
};

struct?PointZ
{
float?x;
float?y;
};

float?CalDistancef(Pointf?x1Pointf?x2)
{
return?sqrtf((x1.x-x2.x)*(x1.x-x2.x)+(x1.y-x2.y)*(x1.y-x2.y));
}

float?CalDistanceZ(PointZ?x1PointZ?x2)
{
return?sqrtf((x1.x-x2.x)*(x1.x-x2.x)+(x1.y-x2.y)*(x1.y-x2.y));
}

float?CalDistancefZ(Pointf?x1PointZ?x2)
{
return?sqrtf((x1.x-x2.x)*(x1.x-x2.x)+(x1.y-x2.y)*(x1.y-x2.y));
}




int?main(int?argc?char*?argv[])
{
Pointf?pts[N]={
{00.00.0}{13.08.0}{22.02.0}{31.01.0}{45.03.0}
{54.08.0}{66.03.0}{75.04.0}{86.04.0}{97.05.0}
};
int?ijm;

printf(“樣本集為:\n“);

for(i=0;i {
printf(“X%d(%.1f%.1f)??“ipts[i].xpts[i].y);

if((i+1)%5==0)
{
printf(“\n“);
}

}
printf(“\n“);
printf(“\n“);

int?Nc=0;
printf(“please?input?初始聚類中心數:Nc(0-10):?“);
scanf(“%d“&Nc);

int?Z[N];

for(i=0;i {
printf(“輸入初始第%d聚類中心的序號(0-9):“i);
scanf(“%d“&Z[i]);
}

????int????Nj[N];?//記錄每個類中元素的個數
PointZ?ZArray[N];
Pointf?SAArray[N][N];
float??DjAv[N];
float??Deltaj[N][2];
float??Deltajmax[N];
int??DeltajmaxCor[N];
float??DAv;
int????Nreal=N;
int????count=0;

float??Dij[N*N/2];
int????Diji[N];
int????Dijj[N];
int????q=0;
int????p=0;
????float?ft;
int???it;
int???jt;
int???flag;
int?ss=0;
PointZ?Ztp;
PointZ?ZArraytp[N];
int????Nctp;

char?ch;

int?cur=0;

for(i=0;i {
Nj[i]=0;?
}

//聚類中心的特征值
for(i=0;i {
int?ihere=Z[i];
ZArray[i].x=pts[ihere].x;
ZArray[i].y=pts[ihere].y;
}

int?KThetaN;
float?ThetaSThetaC;
int?LI;

Step1:
printf(“輸入預期聚類中心數目?K?:“);
scanf(“%d“&K);
printf(“輸入每個聚類域中最少的樣本數ThetaN:?“);
scanf(“%d“&ThetaN);



printf(“輸入同一聚類域中樣本標準差的最大值:?“);
scanf(“%f“&ThetaS);

printf(“輸入不同聚類域距離最小值:?“);
scanf(“%f“&ThetaC);

printf(“輸入一次可以合并的聚類中心的最多對數:?“);
scanf(“%d“&L);

printf(“輸入最大迭代次數:?“);
scanf(“%d“&I);
Step2:
for(i=0;i {
Nj[i]=0;
}

printf(“\n“);
printf(“這是第%d次歸類\n“count+1);

for(i=0;i {
if(pts[i].sequence==-1)continue;??????//若該點的序號為-1則說明它是被剔除的
float?dis=1.0e+10;
int?xx=0;
float?ftemp;

for(j=0;j {
ftemp=CalDistancefZ(pts[i]ZArray[j]);
if(ftemp {
xx=j;
dis=ftemp;
}
}

SAArray[xx][Nj[xx]].x=pts[i].x;
SAArray[xx][Nj[xx]].y=pts[i].y;
SAArray[xx][Nj[xx]].sequence=pts[i].sequence;
Nj[xx]=Nj[xx]+1;
}

???for(i=0;i ???{
???printf(“第%d個聚類中心是:(%.2f%.2f)???“iZArray[i].xZArray[i].y);
???printf(“包含的元素有:“i);
???for(j=0;j ???{
???printf(“?X%d?“SAArray[i][j].s

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????221243??2007-12-04?18:49??ISODATA\Debug\ISODATA.exe

?????文件??????16464??2007-12-04?18:24??ISODATA\Debug\ISODATA.obj

?????文件?????484352??2007-10-24?21:13??ISODATA\Debug\ISODATA.pdb

?????文件??????53248??2007-10-24?21:13??ISODATA\Debug\vc60.pdb

?????文件???????6756??2007-10-24?21:13??ISODATA\ISODATA.cpp

?????文件???????3413??2007-10-24?21:45??ISODATA\ISODATA.dsp

?????文件????????522??2007-10-24?21:54??ISODATA\ISODATA.dsw

?????文件??????58368??2008-03-09?21:29??ISODATA\ISODATA.ncb

?????文件??????53760??2008-03-09?21:29??ISODATA\ISODATA.opt

?????文件????????745??2007-12-04?18:49??ISODATA\ISODATA.plg

?????文件???????1214??2004-10-04?18:17??ISODATA\ReadMe.txt

?????文件????????294??2004-10-04?18:17??ISODATA\StdAfx.cpp

?????文件????????667??2004-10-04?18:17??ISODATA\StdAfx.h

?????目錄??????????0??2009-07-08?17:42??ISODATA\Debug

?????目錄??????????0??2008-12-29?20:33??ISODATA

-----------?---------??----------?-----??----

???????????????901046????????????????????15


評論

共有 條評論