TDA-多个信号上的滑动窗口

时间:2019-06-30 14:21:49

标签: python topology

我正在尝试在python中定义一个函数,该函数在多个信号上执行滑动窗口(并使用生成的SW作为ripser的输入)。 我要达到的目的是(例如带有罪过的例子,对不好的绘画技巧感到抱歉) picture describing my goal

我有10000个点的14个信号,所以有一个14 x 10000矩阵,我想对所有信号执行一个滑动窗口,通过将每个窗口中所有信号的所有点分组来使它们以某种方式相关其尺寸。

我首先尝试使用Christoper Tralie编写的代码,但是这给了我X维度的错误,所以现在我试图对其进行修改。

def slidingWindowMultipleSignals(I, dim, Tau, dT):
'''
Performs the sliding window on multiple signals.
Author: Christopher J. Tralie
'''
N = I.shape[0] #Number of frames
P = I.shape[1] #Number of pixels (possibly after PCA)
pix = np.arange(P)
NWindows = int(np.floor((N-dim*Tau)/dT))
X = np.zeros((NWindows, dim*P))
idx = np.arange(N)
for i in range(NWindows):
    idxx = dT*i + Tau*np.arange(dim)
    start = int(np.floor(idxx[0]))
    end = int(np.ceil(idxx[-1]))+2
    if end >= I.shape[0]:
        X = X[0:i, :]
        break
    f = scipy.interpolate.interp2d(pix, idx[start:end+1], I[idx[start:end+1], :], kind='linear')
    X[i, :] = f(pix, idxx).flatten()
return X

问题在于,我不知道要对其做哪些修改以使其与图像描述的一样进行修改。 有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我怀疑问题出在行中

NWindows = int(np.floor((N-dim*Tau)/dT))

专门与/一起使用。我会检查dim,Tau和dT的类型。如果所有都是整数,或者有些是浮点数,则/的行为可能并不完全相同。

此外,python希望函数的主体缩进,这在您的示例中没有。