nanderivative.m v2.1 是带NaN
数据时比较顺手的一个小工具,尤其你在搞Y
向量或者矩阵列的导数计算时。它的逻辑挺简单:用interp1
在每个X
点附近取两个有效值做插值,算个斜率当导数,默认是一阶。如果你有多阶导数的需求,也能直接传N
进去搞定。嗯,支持跳过 NaN这点真的贴心,实测数据实用。
语法是这样的:dYdX = nanderivative(Y,X)
。想换插值方法,比如不用默认的'spline'
,也能自己指定。插值点距离和导数阶数都可以调。整体逻辑清晰,代码也不复杂,改起来也方便,想拓展成二维都不难。
如果你对interp1
或者spline
插值感兴趣,可以看看apryor6/splinterp这个加速 MEX 包,速度提升挺。或者你在搞像南极 MODIS 雪粒度那种带缺值的时序数据,也可以看看grainsize_interp。
提醒一句:用的时候注意下X
的间距别太不均匀,不然插值效果不太稳。如果你数据里 NaN 多,这工具比直接用 diff 靠谱多了。想算高阶导数或者微分平滑,也可以配合样条拟合用。