MATLAB删除NaN缺失数据和离群数据,删除行和列
来源:网络收集 点击: 时间:2024-02-18第一步:首先我们需要对矩阵或数组的基本操作有所了解,知道矩阵或数组的创建和运算及索引等,以便于理解后面的操作。下面还是先带大家把矩阵基础知识过一遍,我们在命令窗口中输入代码:
a=
即可创建一个4行4列的矩阵或数组,如下图所示。元素间可用空格或逗号,行间用分号。

第二步:创建好矩阵或数组后就可以对矩阵进行索引等操作,索引有精确索引,需完全确定行列位置,如输入代码:
a(3,2)
即可索引出第3行第2列的元素7。
可以索引某一行或某一列,输入代码:
a(3,:)
a(:,2)
即可分别索引出第3行,第2列的元素,程序运行结果如下图所示。

第三步:知道了数组或矩阵创建和索引,那么顺便教下大家矩阵运算和赋值,矩阵有转置,加减乘除等运算,转置的话在矩阵后面加一撇就行,下面我们进行运算和赋值,我们在命令窗口中输入代码:
b=(a(1,2) + a(2,2) - a(3,2)) *a(3,4)/a(4,1)
即可进行矩阵运算并赋值给变量b,运行结果如下图所示。

第四步:知道了基本矩阵运算操作后,下面讲重点了,我们先来对矩阵或数组进行行删除操作,MATLAB删除矩阵某行的话,只需将某行赋值为空即可,如我们在命令窗口中输入代码:
a(2,:)=
即可删除矩阵a中第二行,运行结果如下图所示。

第五步:下面我们删除矩阵或数组中的某列,同理,我们在命令窗口中输入代码:
a(:,2)=
即可删除矩阵a中第2列。
我们输入代码:
a(:,1:3)=
即可删除第一列到第三列的数据,运行结果如下图所示。

第六步:下面我们来甄别并删除矩阵或数组中的NaN缺失空数据,我们首先创建一个包含NaN缺失空数据的矩阵或数组,然后删除NaN缺失空数据,在命令窗口中输入代码:
a = ;
b = a(isfinite(a))
即可删除NaN中的缺失空数据,运行结果如下图所示。

第七步:此外我们还可以看到矩阵或数组中有些数据是明显离群的,比如其中数据6.1,我们想将其删除怎么办,当然我们不可能通过肉眼判断并删除,我们需要用程序解决,我们在命令窗口中输入代码:
c= b(abs(b-mean(b)) = 3*std(b))
即可删除离群数据6.1,运行结果如下图所示。

删除矩阵或数组中的离群数据有许多统计方法和甄别方法,c= b(abs(b-mean(b))
对于删除矩阵或数组中的NaN缺失空数据,得根据矩阵或数组类型来选择方法,如二维矩阵或数组我们使用isnan()甄别,对于从数据库中读取的元细胞数组,我们得使用b=arrayfun(@(k) isnan(data{k}),1:p-1)等方法,多维数组处理方法也不一样,得使用=find(cellfun(@(x)any(isnan(x)),data)),这里不做详细介绍,欢迎大家与我进行交流讨论。
MATLABMATLAB删除NAN删除NAN数据MATLAB离群数据MATLAB删行和列版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_69574.html