MATLAB删除数据表格中NaN空数据和0的数据所在行
1、将有NaN空数据和数据为0的数据表格使用xlsread函数读入到A12。
程序如下:
A12=xlsread('有NaN空数据和数据为0的数据表格.xlsx','sheet1');
打开工作区的A12矩阵检查是否将有NaN空数据和数据为0的数据表格正常读入。
运行结果应该是如下情况,可以看到表格中有NaN空数据和数据为0的数据。

2、找出NaN数据位置。使用MATLAB自带find(isnan( ))函数。
代码为:
[m,n]=find(isnan(A12)); % 找出NaN数据位置
运行后结果。

3、删除含有NaN的行,直接将这一行赋值为空[]即可删除此行数据。
matlab程序:
A12(m,:)=[]; %删除含有NaN的行,x(:,n)=[]可以删除列
运行后的结果如下。可以看到含有NaN的行的数据全部删除掉了。

4、下面将表中为0的数据所在的行删除。
首先将含有NaN的行的数据已经删除掉的数据表格矩阵A12赋值给del_data进行处理。
代码:
del_data=A12;
运行结果如下图可以看到del_data中数据正常赋值于A12。

5、遍历数据表格,找出数据为0的数据位置。
程序:
[judge,~]=find(del_data==0);
运行。

6、删除数据为0的数据的行,直接将这一行赋值为空[]即可删除此行数据。
代码:
if ~isempty(judge)
A12(unique(judge),:)=[];
end
运行后可以看到数据为0的数据的行删除了。

7、“MATLAB删除数据表格中NaN空数据和0的数据所在行”的完整程序及MATLAB代码:
A12=xlsread('有NaN空数据和数据为0的数据表格.xlsx','sheet1');
% ******将表中的NaN空数据所在行删除掉************
[m,n]=find(isnan(A12)); % 找出NaN数据位置
A12(m,:)=[]; %删除含有NaN的行,x(:,n)=[]可以删除列
%**********************************************
% ******将表中为0的数据所在的行删除**************
del_data=A12;
[judge,~]=find(del_data==0);
if ~isempty(judge)
A12(unique(judge),:)=[];
end
%**********************************************
