三维傅里叶矩阵MATLAB

三维傅里叶矩阵MATLAB,matlab,3d,fft,Matlab,3d,Fft,我想为3D傅里叶变换创建一个傅里叶矩阵。 我知道,对于Matlab中的1D FFT,可以使用dftmtx创建,我可以使用kron将其扩展到2D FFT,如下所示: FT1D=dftmtx(N); FT2D=kron(FT1D,FT1D); 有没有办法把它扩展到三维空间?谢谢你的帮助。好的,我自己解决了这个问题!我在Mathworks中找到了一个名为“自定义矩阵对象动态定义”的套件: 使用该套件,3D傅里叶矩阵可定义如下: Qobj=MatrixObj; Qobj.Ops.mtimes=@(o

我想为3D傅里叶变换创建一个傅里叶矩阵。 我知道,对于Matlab中的1D FFT,可以使用dftmtx创建,我可以使用kron将其扩展到2D FFT,如下所示:

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

有没有办法把它扩展到三维空间?谢谢你的帮助。

好的,我自己解决了这个问题!我在Mathworks中找到了一个名为“自定义矩阵对象动态定义”的套件:

使用该套件,3D傅里叶矩阵可定义如下:

Qobj=MatrixObj;
Qobj.Ops.mtimes=@(obj,z) fftn(z);
要使用它,我们可以写:

y=Qobj*x;
这很容易。
我在网上没有找到解决我问题的其他方法,所以我希望它也能对其他人有用

好的,我自己解决了这个问题!我在Mathworks中找到了一个名为“自定义矩阵对象动态定义”的套件:

使用该套件,3D傅里叶矩阵可定义如下:

Qobj=MatrixObj;
Qobj.Ops.mtimes=@(obj,z) fftn(z);
要使用它,我们可以写:

y=Qobj*x;
这很容易。 我在网上没有找到解决我问题的其他方法,所以我希望它也能对其他人有用