c=TXT;%读取数据,[A,B,C...]=xlsread('文件名.xlsx/.xls')
x=1:1:70;
y=zeros(70:1);%存储提取出来的y值
for i=1:71%判断波动(斜率)
if(abs((c(i+1,1)-c(i,1)))>=20)
y(i,1)=c(i+1,1);
else
c(i,1)=c(i+1,1);
end
end
%计算效率用
z=y(:,1)~=0;
num1=sum(z(:));
num2=length(y(:,1));
p=1-num1/num2;
for i=1:70%将空值转为缺失值
if(y(i,1)==0)
y(i,1)=nan;
end
end
Y = fillmissing(y,'linear');%线性插值填充缺失值
plot(x,Y,x,y);%作图
fprintf('x=%d\n',x);%测试
fprintf(' ');%测试
fprintf('y=%d\n',y);%测试
fprintf(' ');%测试
fprintf('Y=%g\n',Y);%测试
fprintf('num1=%g\n',num1);%测试
fprintf('num2=%g\n',num2);%测试
fprintf('p=%g\n',p);%测试
xlswrite('test001.xlsx',Y,'sheet1','F3');%存入excel
%计算拟合优度
[x,y]=xlsread('test001.xlsx');
count1=x(:,1);
count2=x(:,4);
sse=0;
sst=0;
ym=mean(count1);
for i=1:72
sst=sst+(count1(i,1)-ym)^2;
sse=sse+(count1(i,1)-count2(i,1))^2;
end
R2=1-sse/sst;
fprintf('R2=%g\n',R2);