我有一个64行的单元格数组:
[1x8 double] [1x8 double] [-41.681792665672198] [1.002916975562337e+03] [1.002557764151239e+03] [ 2.076740522329561] [ 6.976575556945958]
有时在[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
不幸的是,MATLAB会给我这个错误:
**Assignment has more non-singleton rhs dimensions than non-singleton subscripts**
很奇怪,程序在处理过程中不会给我这个错误,但是在命令窗口中明确地调用了该函数之后。
我想使用这个替换然后计算平均值和标准差而没有那些奇数值:
if RESULT{j,1} ~=0
RESULT{j,4} = nanmean(RESULT{j,1});
RESULT{j,5} = nanmean(RESULT{j,2});
RESULT{j,6} = nanstd(RESULT{j,1});
RESULT{j,7} = nanstd(RESULT{j,2});
end
所以,如果你可能有更深层次的解决方案,那我就是你的全部:)
答案 0 :(得分:0)
我无法再现完全相同的错误,但我认为问题在于如何分配NaN值,不应将其指定为字符串,而是调用NaN函数: 即NaN而不是NaN&#39; 在您的代码中:
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