Scipy操作是逐行完成的,而不是像Matlab中那样逐列完成的



我是NumPy, SciPy的新手。以前,我已经使用Matlab/Octave很长一段时间了。

似乎scipy.fftpack.fft对二维数组逐行工作。对我来说,这很令人困惑,因为在Matlab中,这样的操作是一列一列地完成的。sciy中的所有其他操作也是逐行执行的吗?

我可以在NumPy/SciPy中按列执行操作吗?

Numpy的fft()接受一个"axis"参数,所以你可以要求逐列FFT,而不是默认的逐行FFT。

。,则返回x中每列的16点FFT(如果不知道行数,则可以将第二个参数指定为None):

 import numpy as np
 x = np.hstack([np.zeros((16,1)), np.ones((16,1))])
 x[0,0] = 1
 f = np.fft.fft(x, 16, 0)   

f的第一列是全为1的函数的FFT。f的第二列是一个常数列的FFT,该数列是频域的一个δ函数。

最新更新