我想将一个形状为(m, n, l)的3D数组转换为如下形状的2D数组 (m*n, l):
A = [[[1, 2],[3, 4]], [[5, 6],[7, 8]]]
to
B = [[1, 3, 2, 4], [5, 7, 6, 8]]
对于范围l内的每个i,我使用了
reshape(A[i, :, :], (1, -1), order='F')
它能够工作。但是,当我使用signal.hilbert(B)
时,我会得到以下错误。
Traceback (most recent call last): File "E:/IMFsPasesAndDifferences_FV/FollowingTheSameLogicAsMatlab.py", line 41, in <module>
HilbertMatrix = signal.hilbert(TempMatrix) File "C:\Users\Tiwa\Anaconda3\envs\IMFsPasesAndDifferences_FV\lib\site-packages\scipy\signal\signaltools.py", line 1624, in hilbert
Xf = fftpack.fft(x, N, axis=axis) File "C:\Users\Tiwa\Anaconda3\envs\IMFsPasesAndDifferences_FV\lib\site-packages\scipy\fftpack\basic.py", line 284, in fft
return work_function(tmp,n,1,0,overwrite_x)
_fftpack.error: failed in converting 1st argument `x' of _fftpack.zrfft to C/Fortran array
我想知道是否有其他方法可以重新塑造矩阵,而不使用order='F'。
提前感谢。
B
吗?现在你的代码无法按照你所要求的方式生成数组。 - Mad Physicist