• 大小: 125KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Matlab
  • 标签: Cao  嵌入维数  

资源简介

本人测试,Cao法求嵌入维数,绝对有效,下载下来试试,Matlab实现

资源截图

代码片段和文件信息

#include 
#include “mex.h“
#include “stdio.h“
#include “stdlib.h“
#include “matrix.h“

//---------------------------------------------------------------------------
// 计算绝对值
double ABS(double x)
{
    double y;
    if (x>=0)
        y = x;
    else
        y = -x;
    return y;
}
//---------------------------------------------------------------------------

// 计算数组最大值
double MAX_VECTOR(double *p_vector
                  int len_vector)
{
    int i;    
    double max_value = *p_vector;
    for (i=0; i    {   if (*(p_vector+i)>max_value)
{
max_value = *(p_vector+i);
}
    }
    return max_value;
}




//求最短距离及向量
void min_dist(double *pdistint nint *placedouble *pmindistint i)
{  int kj;    
   double min_value ;
   
   for (k=0;k   {
   if (*(pdist+k)!=0) 
   {min_value=*(pdist+k);j=k+1;
   break;}
   }

  for (k=0; k  {   
  if ((*(pdist+k)!=0)&&(*(pdist+k)   {  min_value = *(pdist+k); j=k+1; }
  }
  
  *(place+i)=j;
  *(pmindist+i)=min_value;

}



//-----------------------------------------------------------------------------
// 计算向量间的距离(最大范数)
double distance(double *Y1double *Y2int m1int tau)
{  int i;
  double d*pdd_ij;
  pd = (double*)malloc(m1*sizeof(double));       // 声明一个长度为 m 的 double 型数组
for (i=1;i<=m1;i++)
{
d=*(Y1+(i-1)*tau)-*(Y2+(i-1)*tau);
*(pd+i-1)=ABS(d);
}
d_ij=MAX_VECTOR(pdm1);
    free(pd);
return d_ij;
}


//---------------------------------------------------------------------------

// 定义 C 运算函数
void Cao_FUNCTION( double *pdata      // 时间序列(列向量)
int m_min          // 最小嵌入维数       
int m_max          // 最大嵌入维数 
int tau            // 时间延迟
int N         // 序列长度
double *pE1        //用于存放E1
double *pE2)        //用于存放E2

{   int *placeijm;
    double *pdist*pmindist*pE*pEn;

    pE = (double*)malloc((m_max-m_min+1)*sizeof(double)); 
pEn = (double*)malloc((m_max-m_min+1)*sizeof(double)); 

 for (m=m_min;m<=m_max;m++)
 {    
     double ad=0neard dd=0;
      int n=N-m*taud;
      place = (int*) malloc(n*sizeof(int));    //用于存放重构后向量的标号
  pmindist = (double*)malloc(n*sizeof(double)); 
 // printf(“共有 %d 步正在计算第 %d 步!\n“m_maxm);
    
    for (i=0;i {  
pdist = (double*)malloc(n*sizeof(double));   //存放第i个与每个向量的距离

       for (j=0;j    { *(pdist+j)=distance(pdata+ipdata+jmtau); }
  
    min_dist(pdistnplacepmindisti);   //求第i个向量的最近距离及对应向量标号

      //--------------计算a(im)-------------------
      d=*(place+i);
      neard=*(pmindist+i);
      ad=ad+distance(pdata+ipdata+d-1m+1tau)/neard;
  dd=dd+ABS(*(pdata+i+m*tau)-*(pdata+d-1+m*tau));//求E*(d)
      free(pdist);
}

      *(pE+m-m_min)=ad/n;   //求E(d)
      *(pEn+m-m_min)=dd/n;   //求E*(d)
      
      free(place);free(pmindist);
 }
//----------求E1(d)&E2(d)-----------

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4401  2006-03-01 21:58  Cao\cao1.c

     文件      20480  2006-03-01 20:41  Cao\cao1.dll

     文件       3387  2006-02-28 21:41  Cao\cao_m.dsp

     文件        535  2006-02-28 21:59  Cao\cao_m.dsw

     文件        970  2009-09-14 20:37  Cao\cao_m.m

     文件      50176  2006-03-01 22:13  Cao\cao_m.ncb

     文件      48640  2006-03-01 22:13  Cao\cao_m.opt

     文件       1277  2006-03-01 22:01  Cao\cao_m.plg

     文件     328731  2014-10-31 21:06  Cao\cao_m1.m

     文件       3062  2006-03-01 13:47  Cao\cao_old.m

     文件      20480  2007-04-08 20:14  Cao\ccFunction.dll

     文件       4390  2006-01-04 16:14  Cao\ccFunction0.c

     文件      20480  2007-04-08 20:15  Cao\ccFunction0.dll

     文件      18000  2006-01-15 21:39  Cao\data.dat

     文件       4560  2014-10-30 15:31  Cao\data.txt

     文件      14718  2004-08-16 03:25  Cao\mex.h

     文件         84  2006-02-20 13:47  Cao\readme.txt

     文件        296  2003-11-30 18:51  Cao\reconstitution.m

     文件     236278  2014-10-31 21:08  Cao\图形\E1.bmp

     文件     236278  2014-10-30 16:10  Cao\图形\tau3.bmp

     文件     236278  2014-10-30 16:09  Cao\图形\tau4.bmp

     文件     236278  2014-10-30 16:09  Cao\图形\tau5.bmp

     文件     236278  2014-10-30 16:08  Cao\图形\tau6.bmp

     文件     236278  2014-10-30 16:08  Cao\图形\tau7.bmp

     文件     236278  2014-10-30 16:07  Cao\图形\tau8.bmp

     文件     236278  2014-10-30 16:11  Cao\图形\tau9.bmp

     目录          0  2014-10-31 21:08  Cao\图形

     目录          0  2014-10-30 09:41  Cao

----------- ---------  ---------- -----  ----

              2434891                    28

............此处省略1个文件信息

评论

共有 条评论