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

  • 大小: 6KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-01
  • 語(yǔ)言: C/C++
  • 標(biāo)簽:

資源簡(jiǎn)介

DTW算法 C++實(shí)現(xiàn) 希望對(duì)需要的人有幫助 謝謝各位的關(guān)注

資源截圖

代碼片段和文件信息

/*dtwrecoge.cpp**************************************************************/

#include?“dtwrecoge.h“
double?distance[DTWMAXNUM][DTWMAXNUM];?/*保存距離*/
double?dtwpath[DTWMAXNUM][DTWMAXNUM];?/*保存路徑*/

/*****************************************************************************/
/*?DTWDistance,求兩個(gè)數(shù)組之間的匹配距離
/*?AB分別為第一第二個(gè)數(shù)組,I,J為其數(shù)組長(zhǎng)度,r為匹配窗口的大小

/*?r的大小一般取為數(shù)組長(zhǎng)度的1/10到1/30
/*?返回兩個(gè)數(shù)組之間的匹配距離如果返回-1.0,表明數(shù)組長(zhǎng)度太大了
/*****************************************************************************/
double?DTWDistanceFun(double?*Aint?Idouble?*Bint?Jint?r)
{
int?ij;
double?dist;
int?istartimax;
int?r2=r+ABS(I-J);/*匹配距離*/
double?g1g2g3;
int?pathsig=1;/*路徑的標(biāo)志*/

/*檢查參數(shù)的有效性*/
if(I>DTWMAXNUM||J>DTWMAXNUM){
//printf(“Too?big?number\n“);
return?-1.0;
}

/*進(jìn)行一些必要的初始化*/
for(i=0;i for(j=0;j dtwpath[i][j]=0;
distance[i][j]=DTWVERYBIG;
}
}

/*動(dòng)態(tài)規(guī)劃求最小距離*/
/*這里我采用的路徑是?-------
??????????????????????????.?|
????????????????????????.???|
??????????????????????.?????|
????????????????????.???????|
?*/
distance[0][0]=(double)2*ABS(A[0]-B[0]);
for(i=1;i<=r2;i++){
distance[i][0]=distance[i-1][0]+ABS(A[i]-B[0]);
}
for(j=1;j<=r2;j++){
distance[0][j]=distance[0][j-1]+ABS(A[0]-B[j]);
}

for(j=1;j istart=j-r2;
if(j<=r2)
istart=1;
imax=j+r2;
if(imax>=I)
imax=I-1;

for(i=istart;i<=imax;i++){
g1=distance[i-1][j]+ABS(A[i]-B[j]);
g2=distance[i-1][j-1]+2*ABS(A[i]-B[j]);
g3=distance[i][j-1]+ABS(A[i]-B[j]);
g2=MIN(g1g2);
g3=MIN(g2g3);
distance[i][j]=g3;
}
}

dist=distance[I-1][J-1]/((double)(I+J));
return?dist;
}/*end?DTWDistance*/

/*****************************************************************************/
/*?DTWTemplate,進(jìn)行建立模板的工作
/*?其中A為已經(jīng)建立好的模板,我們?cè)谝院蠹尤胗?xùn)練樣本的時(shí)候,
/*?以已建立好的模板作為第一個(gè)參數(shù),I為模板的長(zhǎng)度,在這個(gè)模板中不再改變
/*?B為新加入的訓(xùn)練樣本,J為B的長(zhǎng)度,turn為訓(xùn)練的次數(shù),在第一次
/*?用兩個(gè)數(shù)組建立模板時(shí),r為1,這是出于權(quán)值的考慮
/*?temp保存匹配最新訓(xùn)練后的模板,建議temp[DTWMAXNUM],函數(shù)返回最新訓(xùn)練后模板的長(zhǎng)度
/*?如果函數(shù)返回-1,表明訓(xùn)練樣本之間距離過(guò)大,需要重新選擇訓(xùn)練樣本,
/*?tt為樣本之間距離的閥值,自行定義
/*?rltdistance保存距離,第一次兩個(gè)數(shù)組建立模板時(shí)可以隨意賦予一個(gè)值,
/*?后面用前一次返回的值賦予該參數(shù)
/*****************************************************************************/
int?DTWTemplate(double?*Aint?Idouble?*Bint?Jdouble?*tempint?turndouble?ttdouble?*rltdistance)
{
double?dist;
int?ij;
int?pathsig=1;
dist=DTWDistanceFun(AIBJ(int)(I/30));
if(dist>tt){
printf(“\nSample?doesn‘t?match!\n“);
return?-1;
}

if(turn==1)
*rltdistance=dist;
else{
*rltdistance=((*rltdistance)*(turn-1)+dist)/turn;
}
/*尋找路徑這里我采用了逆向搜索法*/
i=I-1;
j=J-1;
while(j>=1||i>=1){
double?m;
if(i>0&&j>0){
m=MIN(MIN(distance[i-1][j]distance[i-1][j-1])distance[i][j-1]);
if(m==distance[i-1][j]){
dtwpath[i-1][j]=pathsig;
i--;
}
else?if(m==distance[i-1][j-1]){
dtwpath[i-1][j-1]=pathsig;
i--;
j--;
}
else{
dtwpath[i][j-1]=pathsig;
j--;
}
}
else?if(i==0){
dtwpath[0]

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件???????3853??2004-04-12?20:53??DTW算法\dtwrecoge.cpp

?????文件???????1524??2004-04-12?20:53??DTW算法\dtwrecoge.h

?????文件???????6168??2004-04-12?20:53??DTW算法\vdtwrecoge.cpp

?????文件???????2793??2004-04-12?20:53??DTW算法\vdtwrecoge.h

????..AD...?????????0??2008-09-18?23:32??DTW算法

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

????????????????14338????????????????????5


評(píng)論

共有 條評(píng)論

相關(guān)資源