nan替换为下一个真正的价值。
11视图(30天)
显示旧的评论
更多的答案(4)
肖恩·德Wolski
2014年10月31日
编辑:肖恩·德Wolski
2014年10月31日
x =[南1 1 3南南4];
idx = isnan (x);
idxnan =找到(idx);
idxnotnan =找到(~ idx);
fillv = interp1 ([-flintmax idxnotnan], [0 x (idxnotnan)], idxnan,“下一个”);
x (idx) = fillv;
可能慢,很难找出比
为
循环,它需要R2014b;但是它很酷!
2的评论
每•艾萨克森
2014年10月31日
编辑:每•艾萨克森
2014年10月31日
如果今天早上
x(结束)
安康是一个数字
而任何(isnan (x))
x1 = [x(2:结束),正);
x (isnan (x)) = x1 (isnan (x));
结束
或
而任何(isnan (x))
不是= isnan (x);
(是)= x([假,并(1:end-1)]);
结束
2的评论
图像分析
2021年7月12日
@yogan Sganzerla
试试这个:
x =[南1 1 3 4南南南南南)
nanIndexes =找到(isnan (x))
nonNanIndexes =找到(~ isnan (x))
%领先nan第一个非nan值
如果nonNanIndexes (1) ~ = 1
x (1: nonNanIndexes (1) - 1) = x (nonNanIndexes (1))
结束
%拖曳nan最后一个非nan值
如果nonNanIndexes(结束)~ =长度(x)
x (nonNanIndexes(结束)+ 1:结束)= x (nonNanIndexes(结束)
结束
%现在再生变化上的索引向量
nanIndexes =找到(isnan (x))
nonNanIndexes =找到(~ isnan (x))
%南索引替换最后non-nan价值之前。
为k = 1:长度(nanIndexes)
thisIndex = nanIndexes (k);
(thisIndex) = x (thisIndex - 1)
结束