赞
踩
一、导入数据
1.先在命令行建立数组,再直接把数据复制上去。
或
2.利用函数,读取excel中的数据
x=xlsread('C:\Users\dell\Desktop\试品2.xlsx','C2:C100')
二、插值
1.把数据中的缺失值转换为NaN
t2(t2==0)=NaN;
2.查找缺失值
- TF1=ismissing(t2);%查找缺失值,TF是逻辑矩阵,利用TF可以找到t2内的缺失值,TF中的1对应t2中的缺失值
- t2(TF1);%显示缺失值位置
- TF=TF1;
- t2pre=t2;
- while max(TF)
- t2=fillmissing(t2,'movmean',30);%窗口为30的移动均值填充缺失向量
- %t2=fillmissing(t2,'movmean',[2,0])%用缺失值的前两个平均值进行插补
- %t2=fillmissing(t2,'movmean',3)%用缺失值的前一个值和后一个值的平均值进行插补
- TF=ismisssing(t2pre)
- end
MATLAB中还存在一个插值函数interp1
y1=interp1(x,y,x1,'method')
方法有三种
'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值
3.绘图
- plot(x,t2pre,t(TF1),t2pre(TF1),'x')
- title('插补后的数据波形')
- xlabel('')
- ylabel('')
- legend('原始数据','插补值')
- save('t2pre.mat','t2pre');%保存插补后的数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。