这可能是一个非常简单且经常被问到的问题,但是我尝试了很多解决方案,但没有一个对我有用。
我有不同的时间序列,在不同的地方包含 NaN,所以我想获得一个解决方案来填充它们。
例如 :
var1 = [80.2 , 76.5 , NaN , 62.3];
var2 = [NaN , NaN , 100.5 , 102.4];
var3 = [1.2 , 4.7 , NaN, NaN];
我只想要一个简单的插值代码,我可以像这样获得估计的完整数据:
var1_filled = fill_vector(var1);
我尝试过的:
我尝试使用naninterp,但由于它是立方的,例如 var3 达到 1e4 的顺序,这是我不想要的。如果我将'cubic'
参数更改为'linear'
,则它不会处理 NaN。
我也尝试自己实现一个类似的功能,它也不处理 NaNs :
dd_x=find(~isnan(dd));
dd_y=dd(~isnan(dd));
yi=interp1(dd_x,dd_y,1:length(dd));