admin 管理员组文章数量: 1086019
数据修复Matlab
文章
基于以下文章,我写入一个可以帮助自己直接解决数据缺失,去差异值和平滑的脚本,即一步到位。
数据预处理—空值(补全或删除)与异常值(剔除)
几种常用信号平滑去噪的方法
代码
请注意看我写的注释
% 判断缺失值和异常值并修复,顺便光滑噪音,渡边笔记
clc,clear;close all;
x = 0:0.06:10;
y = sin(x)+0.2*rand(size(x));
y(22:34) = NaN;
y(89:95) = 50;
testdata = [x' y'];subplot(2,2,1);
plot(testdata(:,1),testdata(:,2));
title('原始数据');%% 判断数据中是否存在缺失值
if sum(isnan(testdata(:)))disp('数据存在缺失值');
elsedisp('数据不存在缺失值');
end% 判断数据中是否存在异常值
% 1.mean 三倍标准差法 2.median 离群值法 3.quartiles 非正态的离群值法
% 4.grubbs 正态的离群值法 5.gesd 多离群值相互掩盖的离群值法
choice_1 = 5;
yichangzhi_fa = char('mean', 'median', 'quartiles', 'grubbs','gesd');
yi_chang = isoutlier(y,strtrim(yichangzhi_fa(choice_1,:)));
if sum(yi_chang)disp('数据存在异常值');
elsedisp('数据不存在异常值');
end%% 对异常值赋空值
F = find(yi_chang == 1);
y(F) = NaN; % 令数据点缺失
testdata = [x' y'];subplot(2,2,2);
plot(testdata(:,1),testdata(:,2));
title('去除差异值');%% 对数据进行补全
% 数据补全方法选择
% 1.线性插值 linear 2.分段三次样条插值 spline 3.保形分段三次样条插值 pchip
% 4.移动滑窗插补 movmean
chazhi_fa = char('linear', 'spline', 'pchip', 'movmean');
choice_2 = 2;
if choice_2 ~= 4testdata_1 = fillmissing(testdata,strtrim(chazhi_fa(choice_2,:))); % strtrim 是为了去除字符串组的空格
elsetestdata_1 = fillmissing(testdata,'movmean',10); % 窗口长度为 10 的移动均值
endsubplot(2,2,3);
plot(testdata_1(:,1),testdata_1(:,2));
title('数据补全结果');%% 进行数据平滑处理
% 滤波器选择 1.Savitzky-golay 2.rlowess 3.rloess
choice_3 = 1;
lvboqi = char('Savitzky-golay', 'rlowess', 'pchip', 'rloess');
% 通过求 n 元素移动窗口的中位数,来对数据进行平滑处理
windows = 8;
testdata_2 = smoothdata(testdata_1(:,2),strtrim(lvboqi(choice_3,:)),windows) ;subplot(2,2,4);
plot(x,testdata_2)
title('数据平滑结果');
结果
数据存在缺失值
数据存在异常值
注
请根据自己的需要选择修复方法,也可以自己加入别的修复方法到脚本上。
脚本修复后自己导出数据就好,通常是导出补全结果,而平滑曲线是用以观察和分析的,当然,你导平滑的数据偶然也没关系,反正数据修复从第一步开始就带有随机性了。
比如我这明明是个正弦函数,脚本给我修复成了左边凹了一块,这就很离谱了。
这种时候应该人为修改或补充下部分数据,或者选择其他的修复方法(修改对应的choice
)
涉及向前对未知修复和向后预测(比如灰色预测),请参考其他文章。
即便如此,日常的数据修复也不会去头去尾给你,不是吗?
以上,欢迎交流
本文标签: 数据修复Matlab
版权声明:本文标题:数据修复Matlab 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1693587296a230850.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论