The FFT function in Matlab is said to be adopted from the FFTW project written in C and to possesses the same performance.
However, I have found one drawback in the Matlab version of it, which I have not found how to overcome.
In the C version, there is an option to get the result of the Fourier transform in the same array where the input data contained (replacing it), while in the Matlab version we look to be forced to transfer the result into another array, which takes extra computational time. There are algorithms (such as the Split Operator method for the quantum evolution), where a long sequence of one-by-one Fourier transforms is required and there is no need to keep the previous-step data. In this case, the huge amount of the computational time is spent on unnecessary data transfer operations, while the C version of a program does not need them and works much faster eventually.
Is there a way to avoid those unnecessary data transfers of the FFT results in Matlab, making it analogous to the C implementation?
With best regards,
Vladimir B. Sovkov