我有时间序列,并且我将一些用户定义的函数应用于时间序列中的每个W元素。带滑动窗口元素的矩阵
现在我只是使用for循环,大小为W的幻灯片窗口在每次迭代中将我的函数应用于窗口中的元素。
我使用的Matlab,它是非常低效的“for循环”,所以我很想矢量化这个操作。
作为一种解决方案我看到转化与长度为N的信号,以一个矩阵的大小(N - 1,W),其中每一行是在不同的窗口的时间序列和赋予功能给该矩阵。
所以,我的问题是:
- 如何我最初的时间序列转换为这样的矩阵?假设我是步骤X的滑动窗口,所以不会出现(N - 1,W)矩阵,但((N - 1)/ X,W)。
例子([1]矩阵的每个X行):
比方说,我的时间序列是:
T = [1, 5, 6, 8, 10, 14, 22]
W = 3
X = 1
=>我很想得到
[[1, 5, 6],
[5, 6, 8],
[6, 8, 10],
[8, 10, 14],
[10, 14, 22]]
如果
W = 3
X = 2
=>我很想得到
[[1, 5, 6],
[6, 8, 10],
[10, 14, 22]]
你需要有量化以前更多的先验信息。不过,我没有看到没有for循环的方法...... – 16per9
你需要计算什么样的操作?卷积不会帮助你吗? –
不要很快地解雇循环;有时他们比替代品更快。但是我同意以前的评论,我们需要更多关于你需要在这些窗口上执行的操作的信息。 – beaker