These are the main coding practices and tools I always rely on.
- Vectorize (but sensibly).
- Use bsxfun in lieu of repmat where possible.
- When looping through an array, loop down columns to access memory in the same order that MATLAB stores the data in.
- Profile the code. I am often surprised about what is taking up the time.
- Pay attention to messages from the Code Analyzer.
- Use functions instead of scripts.
- Don't "poof" variables into any workspaces. Translation, don't use load without a left-hand side; avoid eval, evalin, and assignin.
- Use logical indexing instead of find.
- Avoid global variables.
- Don't use equality checks with floating point values.