maize2017的个人博客分享 http://blog.sciencenet.cn/u/maize2017

博文

MATLAB去除数据中的异常值、离群值以及平滑处理

已有 4416 次阅读 2023-3-13 09:57 |个人分类:Matlab|系统分类:科研笔记

数据预处理(1)在数据采集与传输过程中,由于环境干扰或人为因素有可能造成个别数据不切合实际或丢失,这种数据称为异常值。为了恢复数据的客观真实性以便将来得到更好的分析结果,有必要先对原始数据(1)剔除异常值; 另外,无论是人工观测的数据还是由数据采集系统获取的数据,都不可避免叠加上“噪声”干扰(反映在曲线图形上就是一些“毛刺和尖峰”)。为了提高数据的质量,必须对数据进行(2)平滑处理(去噪声干扰);

(一)剔除异常值

rmoutliers 语法

用rmoutliers()函数即可移除数据组中的离群值,可作数据清洗的初步方法。

Detect and remove outliers in data

B = rmoutliers(A)

B = rmoutliers(A,method)

B = rmoutliers(A,'percentiles',threshold)

B = rmoutliers(A,movmethod,window)

B = rmoutliers(___,dim)

B = rmoutliers(___,Name,Value)

[B,TF] = rmoutliers(___)


效果演示

GW_ZZS_UP_1=rmoutliers(GW_ZZS_UP); %去除数据中的异常值、离群值

% 绘制结果,比较平滑处理前后的效果

plot(-GW_ZZS_UP,'k-')

hold on

plot(-GW_ZZS_UP_1,'r-')

legend('origin','rmoutliers');

image.png

(二)平滑处理

smoothdata语法

Smooth noisy data


Syntax

B = smoothdata(A)

B = smoothdata(A,dim)

B = smoothdata(___,method)

B = smoothdata(___,method,window)

B = smoothdata(___,nanflag)

B = smoothdata(___,Name,Value)

[B,window] = smoothdata(___)

效果演示

% 平滑

GW_ZZS_UP_2=smoothdata(GW_ZZS_UP_1);

plot(-GW_ZZS_UP_1,'k-')

hold on

plot(-GW_ZZS_UP_2,'r-')

legend('rmoutliers','smooth')

image.png

参考资料1:https://blog.csdn.net/Davidietop/article/details/115441236

参考资料 2:https://blog.csdn.net/weixin_42395980/article/details/115825594?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-115825594-blog-115441236.pc_relevant_multi_platform_whitelistv3&spm=1001.2101.3001.4242.1&utm_relevant_index=3




https://wap.sciencenet.cn/blog-3402238-1380149.html

上一篇:MATLAB 滑动平均
下一篇:Matlab 生成指定步长的时间序列
收藏 IP: 5.78.68.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-27 08:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部