View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Join the 15-year community celebration.

Play games and win prizes!

» Learn more

5.0 | 12 ratings Rate this file 39 Downloads (last 30 days) File Size: 390 KB File ID: #22943 Version: 1.8
image thumbnail

Guidelines for writing clean and fast code in MATLAB


Nico Schlömer (view profile)


10 Feb 2009 (Updated )

This document gives hints on how to write fast and good quality MATLAB code.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information

This document is aimed at all MATLAB users who are already familiar with the syntax but may not yet know the each and every pitfall of MATLAB programming. Its goal is to give a number of hints which enable the reader to write quality MATLAB programs and to avoid commonly made mistakes.
There are three major independent chapters which may very well be read separately. Also, the individual chapters each split up into one or two handful of chunks of information. In that sense, this document is really a slightly extended list of dos and don’ts.
This guide is written as part of a basic course in numerical analysis, most examples and codes will hence tend to refer to numerical integration or differential equations. However, almost all aspects are of general nature and will also be of interest to anyone using MATLAB.
Feel free to contribute at


Writing Fast Matlab Code inspired this file.

This file inspired Function To Generate Truth Table Condition Vectors and Matlab Coding Checklist.

MATLAB release MATLAB 7.8 (R2009a)
MATLAB Search Path
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (14)
21 Aug 2016 YEONHWA KIM  
04 Jan 2016 Egon Geerardyn  
03 Jan 2016 E. Ch3yn3t  
18 Apr 2015 Adam Danz

Adam Danz (view profile)

03 Mar 2015 David Verrelli

Generally very sound advice, with concrete illustrations in code.

Personally I prefer not to include helper functions within other functions, unless the helper function is a short "anonymous function":

One other tip: besides building "fences", now in MATLAB you can identify "code sections" by use of two consecutive percent symbols (%%), which acts something like a 'super comment'. When opened in MATLAB, the code sections are visually distinct, and can easily be run separately in a 'procedural' script (less easily in a function).

27 Jan 2015 Praviraj PG

Praviraj PG (view profile)

20 Dec 2013 Mateo Sundquist  
05 Nov 2013 Nico Schlömer

Nico Schlömer (view profile)

@Mark Mikofski Definitely a good idea to add this.

Comment only
31 Oct 2013 Mark Mikofski

Mark Mikofski (view profile)

Julia ( is a new language that has the potential to be an alternative to MATLAB. It is targeted at MATLAB users, but it's speed approaches native C, is open-source (as in free beer) and has parallelism built in. Python has obviously been around longer, but Julia out performs Python by a order of magnitude.

Comment only
08 Mar 2012 Christoph Feenders  
29 Jan 2011 Paul Metcalf  
28 Jan 2011 Michael Völker  
05 Jan 2010 Vaclav Bouse

nice, clear, overview, worthy to read

21 Dec 2009 Roger Parkyn

Good clearly presented examples make this easy to read but still informative. Will be useful for people new to Matlab (and I learnt a few things from it too!).

02 Jun 2009 1.2

- changed colors
- added paragraph on logical indexing
- updated license

20 Dec 2009 1.3

typo in description

21 Jan 2011 1.6

* added section on Python
* fixed some typos

06 Nov 2013 1.7

typos, small updates

05 Nov 2015 1.8

small style updates

Contact us