在Matlab中阅读Excel电子表格后,遗憾的是我的结果表中包含了NaN。例如,这个Excel表:
将导致此表:
其中发生另外一列NaN。我尝试使用以下代码段删除NaN:
measurementCells = readtable('MWE.xlsx','ReadVariableNames',false,'ReadRowNames',true);
measurementCells = measurementCells(any(isstruct(measurementCells('TIME',1)),1),:);
然而,这导致0x6
表,不再存在任何值。如何在不从表中删除任何数据的情况下正确删除NaN?
答案 0 :(得分:2)
要么:
tab = tab(~any(ismissing(tab),2),:);
或:
tab = rmmissing(tab);
如果要删除包含一个或多个缺失值的行。
如果您希望将缺失值替换为其他值,请了解fillmissing
(https://mathworks.com/help/matlab/ref/fillmissing.html)和standardizeMissing
(https://mathworks.com/help/matlab/ref/standardizemissing.html)函数的工作原理。这些示例非常详尽,可以帮助您找到最适合您需求的解决方案。
您拥有的最后一个解决方案是使用NaN
参数在readtable
函数的调用中发现(并以您喜欢的方式操纵)EmptyValue
值。但这只适用于数字数据。