如何从表中正确删除NaN值

时间:2017-12-11 17:30:09

标签: matlab nan

在Matlab中阅读Excel电子表格后,遗憾的是我的结果表中包含了NaN。例如,这个Excel表:

Excel table

将导致此表:

Matlab table

其中发生另外一列NaN。我尝试使用以下代码段删除NaN:

measurementCells = readtable('MWE.xlsx','ReadVariableNames',false,'ReadRowNames',true);
measurementCells = measurementCells(any(isstruct(measurementCells('TIME',1)),1),:);

然而,这导致0x6表,不再存在任何值。如何在不从表中删除任何数据的情况下正确删除NaN?

1 个答案:

答案 0 :(得分:2)

要么:

tab = tab(~any(ismissing(tab),2),:);

或:

tab = rmmissing(tab);

如果要删除包含一个或多个缺失值的行。

如果您希望将缺失值替换为其他值,请了解fillmissinghttps://mathworks.com/help/matlab/ref/fillmissing.html)和standardizeMissinghttps://mathworks.com/help/matlab/ref/standardizemissing.html)函数的工作原理。这些示例非常详尽,可以帮助您找到最适合您需求的解决方案。

您拥有的最后一个解决方案是使用NaN参数在readtable函数的调用中发现(并以您喜欢的方式操纵)EmptyValue值。但这只适用于数字数据。