0% found this document useful (0 votes)
57 views

Matlab Tutorial Course: Lesson 6: Programming Tips

This document provides an overview and tips for writing readable and efficient Matlab code. It discusses: 1) Using descriptive variable names and comments to make code easy to understand. 2) Ways to write efficient code, such as checking calculations inside loops and applying transformations after rather than during looping. 3) Functions like tic/toc and the time profiler to check execution time and identify bottlenecks. Memory management through pre-allocating arrays is also discussed.

Uploaded by

suresh270
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Matlab Tutorial Course: Lesson 6: Programming Tips

This document provides an overview and tips for writing readable and efficient Matlab code. It discusses: 1) Using descriptive variable names and comments to make code easy to understand. 2) Ways to write efficient code, such as checking calculations inside loops and applying transformations after rather than during looping. 3) Functions like tic/toc and the time profiler to check execution time and identify bottlenecks. Memory management through pre-allocating arrays is also discussed.

Uploaded by

suresh270
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Matlab tutorial course

michael.berks@manchester.ac.uk

Lesson 6: Programming tips


From last week
• Reading Matlab format files in Python
– See File IO in the SciPy module (in conda)
– https://docs.scipy.org/doc/scipy/reference/tutoria
l/io.html
– import scipy.io as sio
– sio.loadmat
– sio.savemat
– sio.whosmat
From last week
• Matlab Central File Exchange
• https://uk.mathworks.com/matlabcentral/file
exchange/?s_tid=gn_mlc_fx
• eg Search for “Read Analyze format”
First, the slide on num2str from last week…
Five V
Cinq 101
5
Funf
A = 5;
B = ‘5’; C = num2str(A);
Lesson overview
• Write code that’s easy to read – you’ll thank
yourselves later!
• Pay attention to Matlab’s code hints
• Using tic, toc and the time profiler
• Using the Matlab debugger
Readable code
• What code you write determines how a
program works
• How you write it determines how easy it is for
you (anyone else) to understand it
• Think of it like your handwriting…
… it’s no use making notes in a lecture if when
you come to revise from them you can’t read
your own handwriting or remember what any
of your abbreviations mean!
Readable code
• Expressive variables names
– Describe what a variable is, use ‘_’ or capitals to separate words
• E.g. find_max or findMax
– For loop counters use “i_name” where name is what your looping through
• E.g. i_row, i_col, i_im etc.
– Makes it much less likely you accidently reuse a variable name
• E.g. you use ‘r’ for row, then later use ‘r’ for radius, then try and reuse ‘r’ as a row index

• Comments
– At start of function, describe function purpose, use, and its inputs/outputs
– Every few lines to describe what you’re doing
– Before major blocks of code to describe the general purpose of the next
section

• Nesting loops, if clauses


– No excuses, the editor does this for you!

• See local maxima example in ‘programming_tips.mat’


Efficient code - tips
• In loops, check only calculations that vary on each
iteration are inside the loop
• If applying some transformation to a large array,
then taking, min, max, mean etc. see if you can
apply the transformation afterwards
– A = rand(1024);
– A_max2a = max(sqrt(A(:)));
• Computes square root of 1 million values, then takes max
– A_max2b = sqrt(max(A(:)));
• Takes max, then computes square root on 1 value
Efficient code – checking time
• If code is running slow we want to know why
• The functions tic and toc give us a quick way
to check execution time
• For a more complete assessment we can use
Matlab’s time profiler
• See example in ‘programming_tips.m’
Memory management
• Pre-allocate, pre-allocate, pre-allocate
– Think of it like packing the boot of a car…
… put your biggest items in first, then pack all the
smaller stuff around them
Separating functions
• If ever you find yourself copying code between
functions/scripts, you probably want to create
a new function

You might also like