Matlab入门:实现简单的数据剔除
时间仓促,仅为了数学建模入门使用
代码简单描述:
随机生成一组数据
手动添加奇怪的数据值
使用数据判断对数据进行清洗
生成直方图、求平均值对处理前、处理后的数据进行对比
代码如下:
1 >> aa=randn(1000,1)/10; 2 >> aa(100)=aa(100)+3; 3 >> aa(301)=aa(301)+5; 4 >> aa(501)=aa(501)+7; 5 >> aa(701)=aa(701)-14; 6 >> plot(aa); 7 >> hist(aa,100); 8 >> a=mean(aa) 9 10 a = 11 12 -0.0023 13 14 >> c=std(aa) 15 16 c = 17 18 0.5318 19 20 >> num=find(aa>(a+3*c)|aa<(a-3*c)) 21 22 num = 23 24 100 25 301 26 501 27 701 28 29 >> std(aa) 30 31 ans = 32 33 0.5318 34 35 >> for i = 1:1000 36 if((aa(i)>(a+3*c)|aa(i)<(a-3*c))) 37 aa(i)=0; 38 else continue; 39 end 40 end 41 >> len=length(aa); 42 >> std(aa) 43 44 ans = 45 46 0.0996 47 48 >> plot(aa); 49 50 >> mean(aa) 51 52 ans = 53 54 -0.0033 55 56 >> hist(aa,100);
删除重复的行
使用unique函数
1 >> A=[1,2,3;4,5,6;3,5,7;1,2,3] 2 3 A = 4 5 1 2 3 6 4 5 6 7 3 5 7 8 1 2 3 9 10 >> unique(A,'rows','stable') 11 12 ans = 13 14 1 2 3 15 4 5 6 16 3 5 7
9/15更新
异常数据的处理
若确认数据在同一个样本当中,绝大部分数据应该在均值为4or5个标准偏差之内
对坏数据的处理
①个别处理
②按照一定百分比剔除最大与最小的一部分数据,exp(上下各剔除百分之2.5%),坏数据去除以后对统计量重新计算
这里是对②实现的简单例子
使用trimmean函数对坏数据进行剔除
调用格式
m=trimmean(X,percent)
忽略数据上下各percent/2 %后的均值
可以使用下列m函数去除坏数据
% trim.c 文件 function data=trim(data,outval) %去除坏数据 包括NaN、Inf和异常大小数据if nargin<2outval=4; end outliers = (isnan(data)|abs(data)==inf); [n,m]=size(data); if m>1,data(any(outliers'),:)=[]; elsedata(find(outliers'),:)=[]; end [n,m]=size(data); mu=mean(data); sigma=std(data); outliers=(abs(data-ones(n,1)*mu)>outval*ones(n,1)*sigma); if m>1,data(any(outliers'),:)=[]; elsedata(find(outliers'),:)=[]; end
下面是函数调用实例
>> clear all; >> c=[nan;ones(100,1);inf;100] %含有nan inf和一个不正常大的数100c =NaN1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111Inf100>> mean(c),trimmean(c,5)ans =NaNans =1>> c=trim(c)c =1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111>>
转载于:https://www.cnblogs.com/AKsnoopy/p/11483369.html
Matlab入门:实现简单的数据剔除相关推荐
- spss入门——简单的数据预处理到时间序列分析系列(四)
简单的数据预处理到时间序列分析 spss数据预处理到时间序列分析 (四)曲线拟合 在数据插补之前一定要找找数据的变化趋势,通常数据拟合就是一个较好的方案. 散点进行曲线拟合的方法 根据前面所画散点图, ...
- spss入门——简单的数据预处理到时间序列分析系列(二)
简单的数据预处理到时间序列分析 spss数据预处理到时间序列分析 (二)时间变量生成及绘制散点图 时隔这么久终于又和大家见面了( ̄▽ ̄)~*,咱们继续我们的内容 在完成数据导入后,就可以开始下一步的准 ...
- matlab在大气科学,MATLAB入门在大气科学中的应用学术沙龙活动圆满成功
2010年4月12日上午,在我所研究生部的大力支持下,大气科学常用数据分析软件系列学术沙龙讲座在研究生公寓一层会议室拉开帷幕.本活动宗旨是激发学生们的学习热情和学习动力,促进学生间的相互了解,加强课题 ...
- matlab 数据透视表,MATLAB | 用行为数据处理EEG数据事件码
脑电图(Electroencephalogram,EEG)是通过精密的电子仪器,从头皮上将脑部的自发性生物电位加以放大记录而获得的图形,同时具有极高的时间分辨率.EEGLAB和ERPLAB常被用来处理 ...
- matlab app设计步骤_1.1数学建模与MATLAB–MATLAB入门
1.1数学建模与MATLAB–MATLAB入门 关注本专栏,继续分享数学建模与MATLAB知识 一.MATLAB是什么? MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件.虽然 Cle ...
- pandas入门(6)——数据加载、存储与文件格式
pandas入门(6)--数据加载.存储与文件格式 输入输出通常可以划分为几个大类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据,利用Web API操作网络资源 一.读取文本格式数据 函 ...
- TIT 数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作
文章目录 数字图像处理 原理与实践(MATLAB) 入门教学 实验一 常用的MATLAB图像处理命令与图像基本操作 实验要求 知识点 实验内容 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同 ...
- 数模matlab入门教程-001-xlsread用法
数模matlab入门教程-001 1.函数介绍 2.数据读入 3.后续内容 数模要开始了,整理了一些基本资料提供给没有基础的同学.本文以2017届D题为例,21天数学建模从入门到精通. 这个题目可以在 ...
- 【自学】零基础MATLAB入门笔记
[自学]零基础MATLAB入门笔记 (一) 第一章 MATLAB的新建工程和基本操作与处理 文章目录 [自学]零基础MATLAB入门笔记 (一) 前言 一.MATLAB简介 二.软件下载 三.新建工程 ...
- 线性代数实践及MATLAB入门
[书名]线性代数实践及MATLAB入门 [作者]陈怀琛,龚杰民 编著 [ISBN]978-7-121-07223-9 [出版社]电子工业出版社 [出版日期]2009年1月 [内容简介] 本书第1版是根 ...
最新文章
- 【iOS 开发】iOS 10.3 如何更换 app 图标
- (十一)java版spring cloud+spring boot+redis多租户社交电子商务平台- commonservice-sso服务搭建(一)...
- C++获取当前时间和计算程序运行时间的方法
- JAVA实现QQ聊天气泡
- 《APUE》中的函数整理
- python选课系统_【精选】在Monash读Data Science,人人都拥有这样一份选课指南。
- 华为机试题【9】-整数分割为2的幂次
- nasm实现的用vmware运行自做的linux启动盘的引导代码
- 典型重构3 (Try/Catch)
- ntldr is missing什么意思应该如何解决
- 亿晟科技安卓主板应用品类方案详解
- 交往了 19 年的兄弟,给我上了一课
- 数据分析 --- 如何处理脏数据
- php调用itchat,itchat接口使用示例
- 《网络黑白》一书所抄袭的文章列表
- 22牛客多校1 J.Serval and Essay (启发式合并)
- 实战 | 计算器/数码管数字识别 基于OpenCV和EasyOCR/PaddleOCR(附源码)
- Sublime出现错误——“plugin_host has existed unexpectedly......”
- 找学习资料的网址/地方
- Tensorflow2.0深度学习入门与实战(日月光华)(学习总结1)