I work with Matlab on a daily basis, and I use many compute intensive functions. I was able to obtain substantial speed-ups by changing parts of the code to C Mex files. Depending on the application, and the dependencies between array accesses, we might be able to vectorize some of the code, and use matrix operations rather than loops. Lastly, depending on the dynamic range of the data, we might be able to reduce the precision so as to obtain speed up and a lower memory footprint.