ScaleTime

2.0.0.0(18.3 kb): 1月
等间距数据的快速线性插值(C-MEX和M)

* * * * * * * * *: 2.7k

[qh]2020/10/20

[qh

ScaleTime -快速线性矩阵插值

i = ScaleTime(Y, T)
其中T是一个值在1到size(Y,1)之间的向量。这个等价于
Yi = interp1(1:size(Y, 1), Y, T, 'linear')
如果T由统一步长定义:T = linspace(Ti, Tf, Tn)这样更快:
Yi = ScaleTime(Y, Ti, Tf, Tn)

对于非均匀输入,使用第二个函数:

我记录了例如大小为[100,000 x 10]的时间序列,并根据一些事件裁剪出大约100帧的块,并将它们规范化为101帧。
使用Matlab的INTERP1的直接方法可以工作,但速度很慢:
interp1(1:size(Y, 1), Y, Ti, '*linear')

因此,我创建了函数ScaleTime:
-线性插值
-等间距输入数据
-等距或非等距插值步骤
-矩阵输入
-不处理nan,不推断。

令我惊讶的是,ScaleTime比INTERP1甚至是现代的griddedInterpolant都要快得多。
来自FEX的函数lininterp1f和qinterp1不接受矩阵,它们明显比MEX ScaleTime慢:
//www.tianjin-qmedu.com/matlabcentral/fileexchange/8627
//www.tianjin-qmedu.com/matlabcentral/fileexchange/10286
如果您已经安装了这些工具,它们的速度将在uTest_ScaleTime中进行比较。

包括:m源、c源。
编译:第一次运行ScaleTime时自动编译,或者:
x -O刻度时间
预编译的mex函数即将发布:http://n-simon.de/mex

* * * * *

1月(2022)。ScaleTime(//www.tianjin-qmedu.com/matlabcentral/fileexchange/25463-scaletime), MATLAB中央文件交换。@ # @

Matlab
大数据:R2018b
[qh
[qh
窗户 macOS Linux

社区寻宝

在MATLAB Central中寻找宝藏,并了解社区如何帮助您!

开始狩猎!
버전 * * * * * * *
2.0.0.0之间

修复了测试功能,双输入和单输入的Bug。添加了第二个用于处理非均匀输入的函数。

1.0.0.0