interp1中的样条插值不填充

时间:2017-07-04 10:42:52

标签: matlab interpolation spline

我每5分钟进行潮汐观察,我想将其插入1分钟的间隔。

我尝试用Python做,但是花了太多时间,所以我转到了MATLAB。问题是样条方法填充了NaN值。

下面的图片说明了问题,我希望在没有填充NaN值的情况下进行样条插值。我怎样才能让interp1函数执行此操作?

the image explain it

file='NANTES_5min_nan.txt'
[date, hauteur] = lecture_hfs(file);
vect=[date(1):1/24/60:date(end)];
h_interp=interp1(date,hauteur,vect,'spline');

h_interp_lin=interp1(date,hauteur,vect,'linear');

第二个数字来自Python插值。结果很好,但遗憾的是它只有1个月的数据。当我想将它应用于整个数据(17年)时,执行永远不会结束here is the link for python figure

1 个答案:

答案 0 :(得分:1)

您可以将vect的{​​{1}}值替换为vect NaN的{​​{1}}值,而不是直接使用hauteur作为查询点。这可以通过使用另一个(线性)插值来完成:

NaN

有点乱,可能会有更优雅的方式,但我对通过嵌套另一个插值解决这个问题的可能性着迷。