2016-04-06 222 views
1

我想创建一个三维傅立叶变换的傅里叶矩阵。 我知道,对于一维FFT在Matlab它可以与dftmtx创建,我可以使用KRON这样扩大到2D FFT:三维傅立叶矩阵MATLAB

FT1D=dftmtx(N); 
FT2D=kron(FT1D,FT1D); 

有没有办法把它扩大到3个维度?感谢您的帮助。

回答

0

好吧,我自己解决了这个问题!我发现了一个叫上即时定制Matrix对象的定义在Mathworks公司套房: http://www.mathworks.com/matlabcentral/fileexchange/26611-on-the-fly-definition-of-custom-matrix-objects

使用该套件中,3D傅立叶矩阵可以这样定义如下:

Qobj=MatrixObj; 
[email protected](obj,z) fftn(z); 

要使用它,我们可以这样写:

y=Qobj*x; 

这很简单。 我没有找到任何其他解决方案,我的问题在互联网上,所以我希望它可以对其他人有用!