Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何覆盖';楠';使用for循环的表中的字符串_String_Matlab_Loops_Nan - Fatal编程技术网

String 如何覆盖';楠';使用for循环的表中的字符串

String 如何覆盖';楠';使用for循环的表中的字符串,string,matlab,loops,nan,String,Matlab,Loops,Nan,我想使用循环/或任何其他返回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; 如何使用“表”格式的基本原理?一种可能的方法是对

我想使用循环/或任何其他返回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;

如何使用“表”格式的基本原理?

一种可能的方法是对表列使用逻辑索引,如下所示

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
对于多个列,可以按如下所示循环列

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

谢谢,纳万。我试过这个,但是在所有281列上做循环很困难。我更新了答案,使之在列上循环。根据循环的类型,您可能需要进行一些额外的检查。