将表中的NaN替换为0

时间:2016-03-30 17:43:10

标签: matlab nan

我在table中有一个matlab R2015b,其中包含以下数据

  

var 1 var 2 var 3
  Row1 1 NaN 2
  Row2 2 4 NaN

我想用0代替我表中的所有NaN - 所以这些内容如下:

假设我的表名为A

newTableA = rowfun(@(x) x(isnan(x)) = 0,A,'ExtractCellData',true);  

我想我可以将我的表转换为新的矩阵B,执行,B(isnan(B))= 0,并转换回表,但我认为可能有更有效的方法。

1 个答案:

答案 0 :(得分:2)

只需循环遍历变量:

t = array2table([1 nan 2; 2 4 nan])
for i=1:size(t,2)
    x = t{:,i};
    x(isnan(x)) = 0;
    t{:,i} = x;
end

如果您查看以下方法的源代码:

>> which table\ismissing
>> which table\standardizeMissing

你会发现这或多或少都是他们所做的......