#include <math.h>
#include <stdio.h>
//data——等间隔的剖面原始数据
// n——剖面数据点数
// m——平滑窗内点数为m*2+1
//result——平滑结果数据
void Linear_Smooth_1d(double* data,int n,int m,double* result)
{
int i;
/***********************************/
//这里开始写循环,注意将原始数据两边各扩展m个点,
//以避免剖面两端各损失m个点...
//
{
/***********************************/
//这里添加代码,计算各个点的平滑值...
//
}
}
//主函数
void main()
{
double *data=NULL,*result=NULL;
int n=100,m=2; //给定数据点数,平滑窗口大小,这两个参数根据实际改变
FILE *ifp=NULL,*ofp=NULL;
//分配数据内存空间
data=new double[n];
if(data==NULL)return;//分配数据内存空间失败
result=new double[n];
if(result==NULL){delete[] data;return;}//分配数据内存空间失败
//打开原始数据文件
ifp=fopen("原始数据文件名(根据实际修改)","r");
if(ifp==NULL)//打开文件失败
{
fprintf("打开文件失败!");
delete[] data;
delete[] result;
return;
}
/***********************************/
//这里添加代码,从原始文件中读取数据...
//
fclose(ifp);
Linear_Smooth_1d(data,n,m,result); //调用线性平滑函数
//打开结果输出文件
ofp=fopen("结果数据文件名(修改)","w");
if(ofp==NULL)//打开文件失败
{
fprintf("打开文件失败!");
delete[] data;
delete[] result;
return;
}
/***********************************/
//这里添加代码,写结果数据...
//
fclose(ofp);
//释放内存空间
delete[] data;
delete[] result;
return;
}
评论0