我想使用循环 /或任何其他返回NaN的策略,在表格中用NaN替换字符串'NaN',其他所有内容都保持不变。这是我的代码:
for k = 1:height(Z_24TimeSteps)
if isnan(Z_24TimeSteps{k})
Z_24TimeSteps{k} = nan;
end
end
我尝试的另一种策略:
Z_24TimeSteps(cellfun(@isnan,Z_24TimeSteps))=nan;
如何将此基本原理用于“表格”格式?
答案 0 :(得分:0)
一种可能的方法是对表列使用逻辑索引,如下所示。
Z_24TimeSteps.x1COVGY(strcmp(Z_24TimeSteps.x1COVGY,'NaN')) = {nan}
对于多列,您可以按如下方式循环列。
colNames = Z_24TimeSteps.Properties.VariableNames;
for k = 1:numel(colNames)
if iscell(Z_24TimeSteps.(colNames{k}))
Z_24TimeSteps.(colNames{k})(strcmp(Z_24TimeSteps.(colNames{k}),'NaN')) = {nan};
else
Z_24TimeSteps.(colNames{k})(strcmp(Z_24TimeSteps.(colNames{k}),'NaN')) = nan;
end
end