A brief introduction to Matlab

tastelesscowcreekΒιοτεχνολογία

4 Οκτ 2013 (πριν από 4 χρόνια και 1 μήνα)

122 εμφανίσεις

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.