`

一次线性插值C语言代码

阅读更多


 rstime[0]=ORTIME[0];
 rsvalue[0]=ORVALUE[0];
 int rst=1;
 int rsv=1;
 int ornum=lengthlrs;
 if (resampfz!=0&&ornum>=1)
 {
  double addtime=(double)1/(resampfz);
  double lineReSampleX[2];
  double lineReSampleY[2];
  lineReSampleX[0]=0;
  lineReSampleX[1]=0;
  lineReSampleY[0]=0;
  lineReSampleY[1]=0;
  lineReSampleX[0]=ORTIME[0];
  lineReSampleX[1]=ORTIME[1];
  lineReSampleY[0]=ORVALUE[0];
  lineReSampleY[1]=ORVALUE[1];
  //}
  double lineReSampleX0=lineReSampleX[0]+addtime;

  int lj=1;
  while(lj<ornum)
  {
   
   while(lineReSampleX0>lineReSampleX[1]&&lj<ornum)
   {
    lj=lj+1;
    lineReSampleX[0]=lineReSampleX[1];
    lineReSampleY[0]=lineReSampleY[1];
    lineReSampleX[1]=ORTIME[lj];
    lineReSampleY[1]=ORVALUE[lj];
   }
   rstime[rst]=lineReSampleX0;
   rst++;
   double b=(lineReSampleY[1]-lineReSampleY[0])/(lineReSampleX[1]-lineReSampleX[0]);
   double a=lineReSampleY[0]-b*lineReSampleX[0];
   rsvalue[rsv]=b*lineReSampleX0+a;
   rsv++;
   lineReSampleX0=lineReSampleX0+addtime;

   if (rst==ornum+1&rsv==ornum+1)
   {
    break;
   }

  }

 }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics