Matlab 替换单元格数组中的值

Matlab 替换单元格数组中的值,matlab,Matlab,我有一个这样构建的64行单元格数组: [1x8双精度][1x8双精度][41.681792665672198][1.002916975562337e+03][1.00255764151239E+03][2.076740522329561][6.9765756945958] 有时在[1x8 double]单元格中,我会得到一个要过滤掉的值。我使用这个过滤器: if RESULT{j,1}(1,n) > 1050 RESULT{j,1}(1,

我有一个这样构建的64行单元格数组:

[1x8双精度][1x8双精度][41.681792665672198][1.002916975562337e+03][1.00255764151239E+03][2.076740522329561][6.9765756945958]

有时在[1x8 double]单元格中,我会得到一个要过滤掉的值。我使用这个过滤器:

           if RESULT{j,1}(1,n) > 1050
               RESULT{j,1}(1,n) = 'NaN'; 
           end
           if RESULT{j,1}(1,n) < 950
               RESULT{j,1}(1,n) = 'NaN';
           end

因此,如果您可能有另一种解决方案,我完全同意您的意见:

我无法再现与您完全相同的错误,但我认为问题在于如何分配NaN值,您不应将其分配为字符串,而应调用NaN函数: i、 e.NaN而不是“NaN” 在代码中:

if RESULT{j,1}(1,n) > 1050
   RESULT{j,1}(1,n) = NaN; 
end
if RESULT{j,1}(1,n) < 950
   RESULT{j,1}(1,n) = NaN;
end

谢谢你的意见!但这并没有什么帮助,我认为它有点复杂——它涉及到从一个函数到另一个函数,我不确定我是否正确理解了这一点。你应该尝试将它分解为一个最小的示例,然后从那里开始工作,看看问题出在哪里
if RESULT{j,1}(1,n) > 1050
   RESULT{j,1}(1,n) = NaN; 
end
if RESULT{j,1}(1,n) < 950
   RESULT{j,1}(1,n) = NaN;
end