我想为3D傅里叶变换创建傅立叶矩阵。 我知道对于Matlab中的1D FFT,它可以用dftmtx创建,我可以使用kron扩展到2D FFT:
Func TimeToPlay2()
Global $foo = TimeToPlay()
$RET = _ArrayAdd($aArray_Base3, $foo[0])
sleep(250)
$RE1T = _ArrayAdd($aArray_Base3, $foo[1])
_ArrayDisplay($aArray_Base3, "1D - Delim string")
EndFunc
有没有办法将其扩展到3维?谢谢你的帮助。
答案 0 :(得分:0)
好的,我自己解决了这个问题!我在Mathworks中找到了一个名为On-The-Fly定义的自定义矩阵对象的套件: http://www.mathworks.com/matlabcentral/fileexchange/26611-on-the-fly-definition-of-custom-matrix-objects
使用这个套件,3D傅立叶矩阵可以定义如下:
Qobj=MatrixObj;
Qobj.Ops.mtimes=@(obj,z) fftn(z);
要使用它,我们可以写:
y=Qobj*x;
这很简单。 我没有在互联网上找到任何其他问题的解决方案,所以我希望它对其他人也有用!