function [y] = SPI_preprocessing(Data)
%UNTITLED3 此处显示有关此函数的摘要
% 此处显示详细说明
[m,n]=size(Data);
%将天数变为月份
for i=2:m
str=num2str(Data{i,3});
Data{i,3}=str2num(str(1:6));
end
s=0;
c=0;
station=Data{2,1};
mounth=Data{2,3};
ai=1;
a=[];
Data{m+1,1}=1;
%用月平均值补充缺失数据
for i=2:m+1
if (station==Data{i,1} & mounth==Data{i,3} & i<=m)
if (~isnan(Data{i,4}))
s=s+Data{i,4};
c=c+1;
else
a(ai)=i;
ai=ai+1;
end
else
station=Data{i,1};
mounth=Data{i,3};
if(c~=0)
smean=s/c ;
else smean=0 ;
end
if (size(a)>0)
[am,an]=size(a);
for j=1:an
di=a(j);
Data{di,4}=smean;
end
end
a=[];
ai=1;
s=0;
c=0;
if (~isnan(Data{i,4}))
s=s+Data{i,4};
c=c+1;
else
a(ai)=i;
ai=ai+1;
end
end
end
s2=0;
station=Data{2,1};
name=Data{2,2};
mounth=Data{2,3};
yi=1;
for i=2:m+1
if (station==Data{i,1} & mounth==Data{i,3}&i~=m+1)
s2=s2+Data{i,4};
else
y(yi,:)=Data(i-1,:);
y{yi,4}=s2;
s2=Data{i,4};
yi=yi+1;
station=Data{i,1};
mounth=Data{i,3};
end
end
评论0