这是我的二维离散傅里叶变换代码。我知道,这有点暴力,但在本学期学习数学物理之前,我没有太多编程经验。
我想知道为什么我的程序这么慢,如果有什么东西可以让它变得更健壮[它需要这么长时间,我希望比我更有经验的人能看出什么问题]。
function [trans] = d2ftrans(Matrix)
[o,p] = size(Matrix);
F = 0;
for v = 0:1:p-1
for u = 0:1:o-1
for Xi = 0:1:o-1
for Yi = 0:1:p-1
S = Xi+1;
T = Yi+1;
c = Matrix(S,T) * exp(-1i*2*pi*(u*Xi/o + v*Yi/p));
F = F+c;
end
end
Si = v+1;
Ti = u+1;
G(Ti,Si) = F;
F = 0;
end
end
trans = G;