matlab中清洗数据,个人学习笔记:数据清理 您所在的位置:网站首页 matlab笔记整理 matlab中清洗数据,个人学习笔记:数据清理

matlab中清洗数据,个人学习笔记:数据清理

2023-10-06 03:29| 来源: 网络整理| 查看: 265

所用的书是Matlab data analysis。学习的结果跟大家分享一下。其中所用的数据都可以在matlab中直接加载。

分析数据的第一部是数据清理。首先可以将数据放在图上,看数据是否存在某些特征会使影响分析的结果。比如通过观察可以确定是否存在缺失值、异常值、时间趋势,以及数据是否平稳。如果存在这些问题,就要通过相应的方法对数据进行修正。处理完之后的数据才可以正式的进入分析。

处理缺失值需要根据数据的具体情况来定:是直接忽略缺失值,还是用插值法(interpolation)来弥补缺失值。Matlab里边缺失值使用NaN来表示的。如果数据里边包含NaN,matlab不会发出警告,而是仍然按照你的编程进行运算。最后导致结果异常。以前计算逆矩阵的时候就遇到过这种情况,因为数据中存在NaN,导致矩阵不可逆。有时候直接从excel里边导入的数据,缺失值是用0来表示的。这个时候在matlab中不再显示NaN。但是在运算过程中有可能产生NaN,导致最后结果异常。

对于缺失值NaN,如果要直接忽略的话,一般是用方程isnan来识别NaN,然后再进行替代。假设矩阵x中包含NaN,有下面几种方法可以去除NaN:

>>i=find(~isana(x));

>>x=x(i)                %第一个命令首先识别那些不等于NaN的矩阵中要素的编号,然后第二个命令就要求只保留这些编号的要素。

>>x=x(~isnan(x));         %可以直接去除NaN。

或者:

>>x(isnan(x))=[];

如果要去除包含NaN的行:

>>x(any(isnan(x),2),:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有