Matlab Tutorial Course: Lesson 6: Programming Tips

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy