Matlab
for Scientific Programming
A Brief Introduction
Mark Levene
Follow the links to learn more!
Many features will be demonstrated
What can we achieve in 3 hours?
•
Demonstration of why you may consider to
use
Matlab
and for what types of tasks.
•
Tips on getting you started as a
Matlab
programmer.
•
You will need to practice
Malab
at home,
and/or when doing a project for which
Matlab
may be suitable.
Matlab
Resources
There are many!!
•
Matlab
tutorials and learning resources
•
Attaway
,
MATLAB A
Practical
Introduction to
Programming
and Problem Solving, Second Edition,
Elsevier, 2012 (Introductory).
•
Banches
, Text Mining with
Matlab
, Springer,
2012
(Intermediate).
•
Martinez et al., Exploratory Data Analysis with
Matlab
,
Second Edition, CRC Press, 2011(Advanced).
•
Matlab
claims over 1 million users world wide in 2012!!
•
There are many
Matlab
books
.
•
Also see
Matlab
documentation centre
.
Why
Matlab
?
Introductory Example
•
Example5_2 from Martinez
–
load iris
•
3 classes of Iris to be distinguished by
–
s
epal length, sepal width
–
petal length, petal width
•
Look at the “data”
•
Briefly discuss the
kmeans
algorithm for
grouping data into k groups (here k=3);
demonstrate help in
Matlab
What can you do in
Matlab
?
•
The normal things you can do in any other
programming languages, but is interpreted and
not strict in its typing to allow quick prototyping.
•
Has many built

in features to handle matrices,
maths & stats, data analysis and plotting.
•
Has a wide range of
toolboxes
such as curve
fitting, neural networks, bioinformatics, symbolic
maths and finance.
•
Although Matlab is proprietary there are many
open source toolboxes; see
Matlab
central
.
A simple function in
Matlab
function
area
=
conearea
(radius, height)
area = pi/3
*
radius^2 * height;
end
conearea
(4,6.1)
ans
= 102.2065
•
Matlab
has the usual control flow that
other languages have
–
use
help
when
needed !!
Vectorised
code
•
Chapter 5 in
Attaway
for
i
=1:10 v(
i
) =
i
; end %create a vector
v = 1:1:10 %start=1, increment=1,end=10
for
i
=1:10 w(
i
) = w(
i
)^2; end %standard loop
w=w.^2; %
vectorised
code
•
Can use any other vector operations!
w=log(v); %a vector can be an argument
•
Can query a vector using find:
find(w>5); %returns indices satisfying condition
Matrices and Linear Algebra
•
Chapter 12 in
Attaway
•
Can also
vectorise
(try it out yourselves!)
m = rand(3,3); %create a random 3x3
matrix
•
Matrix operations work as expected!
n = m.*m %Matrix multiplication
•
You will need to revise your linear algebra
to make use of these
Matlab
features.
Example SVD and PCA
(Eigenvector decomposition)
•
For example Singular Value
Decomposition
(SVD)
–
Look this up for maths details,
•
SVD has
applications in many areas including
Information Retrieval is easy in
Matlab
.
m = rand(100,10);
svd
(m);
•
Principal Components Analysis (PCA) is a
special case of SVD measuring the directions
along which the variance is maximised.
load
filteredyeastdata
;
mapcaplot
(
yeastvalues
, genes
);
Basic Statistics
•
Chapter 13 in
Attaway
x= [8 9 3; 10 2 3; 6 10 9
];
mean(x)
ans
= 8 7
5
var
(x
)
ans
=
4 19 12
std
(x)
ans
= 2.0000 4.3589
3.4641
•
y = [9 10 10 9 8 7 3 10 9 8 5 10
];
mode
(y)
ans
= 10
median(y)
ans
= 9
•
There is much more in the statistics toolbox
Curve fitting
•
Example7_3 in Martinez
•
Demonstrate
cftool
with (
x,x
) and (
x,y
)
•
Example 9_2 in Martinez
•
Demonstrate histogram
•
Demonstrate
cftool
with (
xk,nuk
)
•
normfit
=
[
33,40,42,41,39,32];
•
linfit
= [2,44,49,61,82,95]
Maths
•
Chapter 15 in
Attaway
•
Symbolic maths
syms
x y
f = x^2 + y^2 + 2*x*y
simplify(f)
ans
= (
x + y)^
2
expand(
ans
)
f
ezplot
(x^2+2*x+2) % plot the function
Solving equations
solve(2*x^2+x

6)
ans
=

2 3/2
syms
x a b c
solve(a*x^2+b*
x+c
)
ans
=

(
b + (b^2

4*a*c)^(1/2))/(2*a)

(b

(b^2

4*a*c)^(1/2))/(2*a
)
•
Can
try
and solve more complex equations
solve(
exp
(x)

3)
ans
= log(3
)
Calculus
syms
x
diff
(x^3,x)
ans = 3*x^2 %
differentiation
int
(3*x^2)
ans = x^3 %
integration
•
Can do
much
more,
including
solving
differential
equations
.
•
Do not
worry
about the Maths as
such
, as in
Matlab
we
pick
up the
tools
as and
when
we
need
them
.
Summary
•
Matlab
provides and easy

to

use, state

of

the

art environment for scientific computing.
•
There are a wide variety of toolboxes for
different applications, many of which are open
source.
•
Matlab
may not always be the most efficient
solution but it is great for quick prototyping.
•
Matlab
is not designed for general purpose
programming, although it is a complete
language.
Comments 0
Log in to post a comment