Miscellaneous Tips
We end with a few of our favorite easy-to-explain, but highly valuable and generally rarely seen MATLAB tips:
It can be extremely helpful in
certain cases to log a MATLAB session or the run of some job; this can
be achieved using the diary
command.
Although MATLAB is a weakly and
dynamically typed language, if you have ever used the integrated
MATLAB editor, you'll perhaps have seen some of the feedback it gives
you on your code, covering both possible errors to possible
performance improvements. This is known as static analysis, and is a
little like type-checking ino many compiled languages, but is not part
of the language itself. This same functionality can be obtained from a
non-graphical environment at a MATLAB terminal using the
checkcode
command. Note that if checkcode
finds no potential issues, there will not
be any output displayed to indicate success.
This is quite an easy way to improve performance.
When you know the eventual size of say, a cell
array, use cell(m,n,...)
instead of just {}
to create the cell
array. Similarly you can use the ones
, zeros
, or nan
functions
for numeric matrices and arrays, and there is a method for
sparse matrices as well.
Publishing MATLAB code from the editor is a bit like literate programming, with some MATLAB and HTML-specific tooling; it is useful if you wish to publish your code in a readable format.
Many users may be familiar with MATLAB's
save
and load
commands for saving and loading individual
variables, sets of variables, or entire workspaces. However, these functions use the
undocumented functions
getByteStreamFromArray
and getArrayFromByteStream
under the hood, which can be highly useful if you do not want to save
data to disk immediately. For instance, maybe you wish to implement a
custom hashing function or send the data over the wire in a custom
parallel toolkit, perhaps one that interfaces with another
language. A word of warning: the serialized data may be
version-dependent, so only use it for the same version of
MATLAB.