需求背景:站点数据是文本文件,带制表符,且一行是站点某一时刻的所有要素记录。试验之前要进行数据校正、清除nodata、去除奇异值等等预处理工作。
一、首先读取数据
/*读取站点信息*/
int n,m;
float k;
float site[32][6];
FILE *fp;
if((fp=fopen("F:\\information.txt","r"))== NULL)
{
printf("cannot open this file\n");
exit(0);
}
for(n=0;n<32;n++) {
for(m=0;m<6;m++) {
fscanf(fp,"%f",&site[n][m]);
}
}
fclose(fp);
二、定义一个结构体
struct selection
{
float Site_Select[64][6];
float z[64], temp[64];
int site_num;
}x,y;
三、对原始数据进行筛选,利用结构体返回二维数组
struct selection Site_Selection(float num[][6],int Side_length,int site_numbers,int line,int column)
{
int number=0;
for(int i=0;i<site_numbers;i++)
{
if( fabs(num[i][4]-line)<=Side_length && fabs(num[i][5]-column)<=Side_length)
{
for(int j=0;j<6;j++)
{
x.Site_Select[number][j]=num[i][j];
}
number++;
}
}
x.site_num=number++;
return x;
}