Advice on writing MATLAB code usually addresses efficiency concerns, with recommendations such as "Don't use loops." This document is different. Its concerns are correctness, clarity and generality. The goal of these guidelines is to help produce code that is more likely to be correct, understandable, sharable and maintainable.
This document lists MATLAB coding recommendations consistent with best practices in the software development community. These guidelines are generally the same as those for C, C++ and Java, with modifications for MATLAB features and history. The recommendations are based on guidelines for other languages collected from a number of sources and on personal experience.
Nice paper. Is there any chance that an MS Word version could be made available so that I can make small updates that are specific to my organization? But if that violates the copyright then I understand.
Excellent work! I agree with the comment that the use of i and j of variables should be avoided altogether (because i and j are used to work with complex numbers) and to start iterators with k. But that's the only fault I find. I've been using a lot of this for years, but there's still some useful new insights here as well.
I now have a book on this topic.
Elements of MATLAB Style</a><img
style="border: medium none ! important; margin: 0px ! important;"
border="0" height="1" width="1">
It has been reviewed by Loren Shure in her blog.
Short, simple, straightforward, and surprisingly helpful.
10 Apr 2008
Good food for thought. I like the sense of humor, particularly "% 24 November 1971, D.B. Cooper, exit conditions modified."
28 Jun 2007
I read several gudilines documents, this one was far better than the others.
comment: the use of Capitals in function names is wide spread, and much more clarifying for the meaning.
19 Jun 2007
Several mistakes in that document:
1-The use of underscore is said to be uncommon in other languages, which is a very partial assertion. It is of common use in C, which is quite a common language. This document shows how to write unreadable variable names by not using the underscore.
2- the use of i and j is mentioned for scratch variables. 'i' and 'j' are matlab constants (sqaure root of -1), and redefining 'i' is one of the hardest bug to debug (unless you are well aware of that possibility). The good Matlab programmer should avoid using 'i' (or 'j').
3- Use of uppercase letters in function names is perfectly valid, contrary to what the document suggests. There are cases where X and x have different meanings. Think about colorimetry, where x,y,z are the chromaticity coordinates and X,Y,Z the tristimuli. Matlab offers the freedom of using both uppercase and lowercase, it should be used reasonably (e.g. for an acronym, a name, etc.).
03 Jan 2007
Nice and good document
06 Nov 2006
Karthik Raja T
Good, I will be thankful if u send me any more guidelines materials like complete soft copies..!
15 Apr 2006
it need more n more improvements for modern age.
05 Dec 2005
30 Nov 2005
22 Jul 2005
05 Jul 2005
I Am a Loser Loser
Well, the author says: "Common scratch variables for integers are i, j, k, m, n and for doubles x, y and z." However, we should avoid using i and j as variable names because they are by default the unit of imagenary numbers. To be more precise, in Matlab, i^2 == j^2 == -1. Using i and j as varaible names may cause errors hard to detect.
14 Feb 2005
Thanks a lot. So much useful reference for
01 Feb 2005
Useful by all people who begin to programming.
21 Jan 2005
na ja et jet su
16 Jan 2005
10 Jan 2005
Really helpful. everybody should read something like this before starting any coding ! (Now, it;s my turn to review everything that I did)
05 Jan 2005
Rene Just Nielsen
19 Dec 2004
After I read this article, I'm impressed some good stuffs that I uesed to ignore or misuderstand. This pdf file is easy understood and it's especially useful for MATLAB experienced programmers. The guidelines helped me to construct a more standardized, easy-maintained programs. No matter what kind of languages you are using, there will be some concepts you can refer to.
09 Dec 2004
09 Dec 2004
Clear, concise and reasonable. Should be alot of help to me (and others). Thanks
07 Oct 2004
04 Sep 2004
Marcio Andre Andre
Gostei muito me ajuda guando trabalho com matrizes ele é otimo se duvidas...
MARCIO ANDRE /// FLORIANÓPOLIS SC
14 Aug 2004
28 Jul 2004
i am very greatful
26 Jul 2004
File is damaged and I couldn't open it.
30 Jun 2004
Your documemet is not structured enough yet. Try use a standard LaTex. More examples could be helpful and thus self-explanatory. Thanks, btw.
22 Jun 2004
17 Jun 2004
The file is damaged and I cannot open
26 May 2004
13 May 2004
07 Apr 2004
Concise and thorough
05 Apr 2004
Useful, short document that reminds one of all the things they should already do, but probably don't.
03 Apr 2004
I am greatful to Matlab& I am very happy if give me this documment.
27 Mar 2004
23 Mar 2004
06 Feb 2004
14 Jan 2004
An excellent collection, great for beginning or intermediate Matlab coders.
13 Jan 2004
Fahad Al Mahmood
Great & Appreciated Guidelines!
I hope I can follow all of them!
16 Dec 2003
10 Dec 2003
20 Nov 2003
20 Oct 2003
Very good. But a little too kind. Mandate instead of suggest! Also, i and j should never be used. Code may get expanded to use complex numbers. It is also a bad habit that might allow a slip in the future. You are not doing favors by allowing it sometimes.
15 Oct 2003
09 Oct 2003
hamid reza mohammadi
03 Oct 2003
Standards are always welcome in structured programming. This is an attempt at standardizing.
17 Sep 2003
30 Aug 2003
05 Aug 2003
24 Jul 2003
14 Jul 2003
Concise, good examples
30 Jun 2003
12 May 2003
29 Apr 2003
Viet Tung NGUYEN
16 Apr 2003
Dr K. Olp
Generally, most of this should already be known and adhered to by any professional programmer, however it is sometimes useful to have it 'written down' as a reference. Useful as a beginners guide.
11 Apr 2003
No problems viewing file. A good collection of programming tips.
11 Mar 2003
thanks for such facility.
24 Feb 2003
Very instructive this material. However, requires knowing about Matlab programming.
12 Feb 2003
Cannot download PDF. Acrobat 5.0 says there is an error in the file.
30 Jan 2003
Opinionated, but well thought out for issues specific to Matlab :-). I liked it! I wonder if something like this exists for Simulink as well?
23 Jan 2003
22 Jan 2003
Very helpful. I typically write in MATLAB, and I haven't read about style guidelines before. This will help me write more readable and more maintainable MATLAB code.
22 Jan 2003
Most parts are borrowed from other languages. Can't see much useful information.
22 Jan 2003
Good convention for programming large codes
10 Jan 2003
05 Jan 2003
01 Jan 2003
24 Dec 2002
17 Dec 2002
19 Nov 2002
I thought this document encapsulated a boat load of good advice relevant for many programming languages, and included some nice MATLAB specific hints.
Longer, more descriptive variable, function and file names are good, except when math training takes over. I am never going to refer to A, x and b in the system of linear equations A*x=b by any other names ;-)
My exception to the rule about iterators being in alphabetical order is when using them to access entries in an array (granted, we try to discourage this behavior in the first place, but it's not always feasible). In this case, I generally use i for rows, j for columns and k for pages if it's a 3D array, regardless of the loop order. For more dimensions I would use something like i1,i2,i3, ...
In the section on Conditionals, I would replace "Complex" with "Complicated" to avoid confusion with MATLAB's complex numbers.
19 Nov 2002
Great work. The document is well-written and spot-on. A much-needed addition to the MATLAB community.