I thought I would share my top goto list of things I try to do when I write MATLAB code. And checking with other MathWorks folks whose code I admire, I found they basically used the same mental list that I use. You can find blog posts on all of these topics by selecting relevant categories from the right side of The Art of MATLAB blog site.
Clearly (at least to me), this is not everything you generally need to do. You still need to comment the code, add good help information and examples, etc. But 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.
What's on my list that you don't currently do? Do you have a major addition to my list (there can't be too many, or I won't remember to do them all!)? Let me know here.