使用MATLAB了解3D数据的一维FFT

时间:2014-11-26 23:40:13

标签: matlab fft

有人可以解释以下MATLAB行的内容吗?

fft( data3D, N, dim );

data3D是一个大小为(NY, NX, NZ)的数组。 MATLAB文档说

  

fft(X,[],DIM)fft(X,N,DIM)在维度fft中应用DIM操作。

当输入为fft数组时,3D在维度上的确切计算结果是什么?

1 个答案:

答案 0 :(得分:2)

要扩展@Oliver Charlesworth,命令fft(X,[],DIM)应该这样做:

fft_values=zeros(size(X));  %pre-allocate the output array
if (DIM==1)
    for I=1:size(X,2)
        for J=1:size(X,3)
            fft_values(:,I,J) = fft(squeeze(X(:,I,J));
        end
    end
elseif (DIM==2)
    for I=1:size(X,1)
        for J=1:size(X,3)
            fft_values(I,:,J) = fft(squeeze(X(I,:,J));
        end
    end
elseif (DIM==3)
    for I=1:size(X,1)
        for J=1:size(X,2)
            fft_values(I,J,:) = fft(squeeze(X(I,J,:));
        end
    end
end