我在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,并转换回表,但我认为可能有更有效的方法。
答案 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
你会发现这或多或少都是他们所做的......