1

我需要使用傅立叶变换在 python 中创建一个程序。它说:列表索引超出范围,我不明白为什么。错误在以下几行:

Feven = fft([x[i] for i in xrange(0, n, 2)],n/2)
Fodd = fft([x[i] for i in xrange(1, n, 2)],n/2)
4

1 回答 1

1

您是否尝试过将列表编译与函数调用分开以找出引发异常的位置?

# assuming n <= len(x)
even = [x[i] for i in xrange(0, n, 2)]
Feven = fft(even,n/2)

您还可以使用切片来获取列表中的每个第二个元素:

even = x[::2]
odd = x[1::2]
于 2013-05-16T23:22:11.457 回答