Introduction to Matlab
& Data Analysis
Lecture 1: Introduction
Lecture time:
Thursday 11:00 13:00
Course website:
http://www.weizmann.ac.il/midrasha/courses/MatlabIntro/
Eran Eden, Weizmann 2008
Team members
Lecturers:
Natalie Kalev-Kronik kalev001@umn.edu
Eran Eden
Maya Geva
Tutors:
Yuval Hart
Maya Geva
Exercise checkers:
Yuval Dorfan
Anat Tzimmer
Tips / formalities
Course website
http://www.weizmann.ac.il/midrasha/courses/MatlabIntro
The website contains
Where can I do the HW?
On any pc computer at Weizmann (installation of Matlab will be discussed
in the first tutorial)
In the tutorial class
Grade
Course material: Lectures + tutorials + other Matlab resources
HW and solutions
News
HWs 60% + 40% ( Exam)
Course references
Official course book: Mastering Matlab 7, Hanselman & Littlefield
Matlab built in tutorial and references
Tips / formalities
Signing up for tutorials
(#1) Wed 11:00 12:00
(#2) Wed 12:00 13:00
(#3) Wed 13:00 14:00
HW assistance at the computer room
Once a week in Levine 101
Tuesday 8-9 am
Course overview
Introduction to Matlab
Matlab building blocks: 1D 2D and
3D arrays
Simple data analysis and graphics
Control and boolean logic
Loops
Functions and program design
Cells, structures and Files
Simple algorithms and complexity
Debugger
GUI toolbox
Maya Geva:
Image Processing toolbox
Signal processing tollbox, curvefitting
toolbox
Eran Eden
The Bioinformatics Toolbox
Unsupervised learning using Statistics
Toolbox
Supervised learning & the Artificial
Neural network Toolbox
For whom is the course intende
For student with no or little experience of Matlab- first two
thirds of the course.
For students familiar with Matlab who want to expand their
knowledge using Matlab toolboxes- especially last four weeks.
What is the course
about?
(1) Programming in Matlab
(2) Tackling data analysis problems with Matlab
What is the course
about?
Example #1 of a data analysis problem
CAGCATATTTGAAGCCGGGCCCACACACAATTGGGGAACGGATCCCCGCGGCCTCCCGGCA
GACCCCGTCCGGCACGACGACGAAGAAGGGGAGGATGAAGTCGAATTTGAAGCGGATGAAG
GATGAGGAGAGTGACGAAGAAGAGGACGAAGACGACGAGGTCCTTGACGAGGAAGTGAACT
ATTGAATTTGAAGCTTATTCCATCTCAGATAATGATTATGACGGAATTAAGAAATTACTAG
CAGCAGCTTTTCCTAAAGGCTCCTGTGAACACTGCAGAACTAACAGATCTCTTAATTCATA
CAGAACCATATTGGAAGTGTGAATTTGAAGCTTAAGCAAACAAATGTTTCAGAAGACAGCG
ATGATGATGATGCAGATGAAGATGAAATTTTTGGTTTCATAAGCCTTTTAAATTTAACTGA
AAGAAAGGTACCCAGTGTGCTGAACAAATTAAAGAGTTGGTATTTGAAGCGGGTGAGAAGA
ACTGTAAAGAATTTGAAGCGGCAGCTGGACAAGCTTTTAAATGACACCACCAAGCCTGTGG
GCTTTCTCCTAAGTGAAAGATTCATTAATGTCCCTCCTCAGATTGCTCTGCCCATGCACCA
GCAGCTTCAGAAAGAATTTGAAGCAATTTGAAGCCTAGTATTTGAAGCTTCTACCTTCTGA
GACCCCGTCCGGCACGACGACGAAGAAGGGGAGGATGAAGTCGAGGATGAAGACGAAGATC
GATGAGGAGAGTGACGAAGAAGAGGATTTGAAGCACGAAGACGACGAGGTCCTTGACGAGG
AAGTGAATATTGAATTTGAAGCTTATTCCATCTCAGATAATGATTATGACGGAATTAAGAA
ATTACTGCAGCAATTTGAAGCAAAGGCTCCTGTGAACACTGCAGATTTGAAGCAACTAACA
ATTCAACAGAACCATATTGGAAGTGTGATTAAGCAAACAAATGTTTCAGAAGACAGCGATG
ATGATGATGCATTTGAAGCAGATGAAGATGAAATTTTTGGTTTCATAAGCCTTTTAAATTT
CTAATAAGCCATGTGGGAAGTGCTCTTTCTACCTTATTTGAAGCACACCATTTGTGGAAGA
ATTACTGCAGCAATTTGAAGCAAAGGCTCCTGTGAACACTGCAGATTTGAAGCAACTAACA
What is the course
about?
Example #1 of a data analysis problem
CAGCATATTTGAAGCCGGGCCCACACACAATTGGGGAACGGATCCCCGCGGCCTCCCGGCA
GACCCCGTCCGGCACGACGACGAAGAAGGGGAGGATGAAGTCGAATTTGAAGCGGATGAAG
GATGAGGAGAGTGACGAAGAAGAGGACGAAGACGACGAGGTCCTTGACGAGGAAGTGAACT
ATTGAATTTGAAGCTTATTCCATCTCAGATAATGATTATGACGGAATTAAGAAATTACTAG
CAGCAGCTTTTCCTAAAGGCTCCTGTGAACACTGCAGAACTAACAGATCTCTTAATTCATA
CAGAACCATATTGGAAGTGTGAATTTGAAGCTTAAGCAAACAAATGTTTCAGAAGACAGCG
ATGATGATGATGCAGATGAAGATGAAATTTTTGGTTTCATAAGCCTTTTAAATTTAACTGA
AAGAAAGGTACCCAGTGTGCTGAACAAATTAAAGAGTTGGTATTTGAAGCGGGTGAGAAGA
ACTGTAAAGAATTTGAAGCGGCAGCTGGACAAGCTTTTAAATGACACCACCAAGCCTGTGG
GCTTTCTCCTAAGTGAAAGATTCATTAATGTCCCTCCTCAGATTGCTCTGCCCATGCACCA
GCAGCTTCAGAAAGAATTTGAAGCAATTTGAAGCCTAGTATTTGAAGCTTCTACCTTCTGA
GACCCCGTCCGGCACGACGACGAAGAAGGGGAGGATGAAGTCGAGGATGAAGACGAAGATC
GATGAGGAGAGTGACGAAGAAGAGGATTTGAAGCACGAAGACGACGAGGTCCTTGACGAGG
AAGTGAATATTGAATTTGAAGCTTATTCCATCTCAGATAATGATTATGACGGAATTAAGAA
ATTACTGCAGCAATTTGAAGCAAAGGCTCCTGTGAACACTGCAGATTTGAAGCAACTAACA
ATTCAACAGAACCATATTGGAAGTGTGATTAAGCAAACAAATGTTTCAGAAGACAGCGATG
ATGATGATGCATTTGAAGCAGATGAAGATGAAATTTTTGGTTTCATAAGCCTTTTAAATTT
CTAATAAGCCATGTGGGAAGTGCTCTTTCTACCTTATTTGAAGCACACCATTTGTGGAAGA
ATTACTGCAGCAATTTGAAGCAAAGGCTCCTGTGAACACTGCAGATTTGAAGCAACTAACA
What is the course
about?
Example #2 of a data analysis problem
10
21
10
21
73
21
18
21
10
21
21
10
45
21
21
10
What is the course
about?
Examples #3-4 of data analysis problems
11
What is the course
about?
(1) Programming in Matlab
(2) Tackling data analysis problems with Matlab
(3) Learn how to learn Matlab by yourself
12
Why Matlab?
Easy to learn
Easy to debug
Great tool for scientific work
Exploring your data
Visualizing your data
Many useful toolboxes
13
Matlabs main disadvantage
Its slower than other programming
languages.
(unless you use the compiler)
14
Background - computers
Output
Input
15
Background - hardware
CPU
Memor
y
16
Background - software
High level languages
Examples: C, C++, C#, Java, Pascal, Perl, Lisp, Matlab
Low level language
Example: Assembly
Machine language
Example: 0111010101111101
Another important
player: The operating
system
17
The Matlab environment
First we need to Open Matlab
18
The Matlab environment
Opening/saving a
file
Prompt / Command
line
Files and Directories
inside the current
directory
Changing current
directory
The command
window
workspace
19
Matlab can be used as a
calculator
20
Our first command
Writing a command in the command line
21
Our first script (M-file)
(1) Writing the script
(2) Saving the script
Comments
start with a %
(3) Defining script name
(4) Running the script
22
Making errors
This command does
NOT exist in Matlab!
Pressing here will bring you
to the line in the script
where the error occurred
23
Another script
Making sophisticated graphics and animation in Matlab is easy.
We will learn how to do this in two lectures
Peaks
Z = peaks; surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
% Record the movie
for j = 1:20
surf(sin(2*pi*j/20)*Z,Z)
F(j) = getframe;
end
-5
% Play the movie twenty times
movie(F,20)
2
0
-2
y
-3
-2
-1
24
Help!!!
help
doc
Example: docdisp
Google
25
Matlab toolboxes
26
Introduction to Matlab
& Data Analysis
Topic #2:
The Matlab Building Blocks Variables, Arrays and Matrices
Eran Eden, Weizmann 2008
27
identifiers
Identifiers are all the words that build up the program
An identifier is a sequence of letters, digits and underscores _
Maximal length of identifiers is 63 characters
Cant start with a digit
Cant be a reserved word
Examples of Legal
identifiers:
time
day_of_the_week
bond007
findWord
Examples of illegal
identifiers:
007bond
#time
ba-baluba
if
while
28
An overview of the main
players in a program
Identifiers
Reserved
words
Library
functions
Constants
Variables
User
defined
functions
29
Reserved words
(keywords)
Words that are part of the Matlab language
There are 17 reserved words:
for
function
otherwise
try
break
end
return
switch
catch
if
elseif
continue
global
while
case
else
persistent
Do NOT try to redefine their meaning!
Don NOT try to redefine their library function names either!
30
Constants
The value of a constant is fixed and does not
change throughout the program
Numbers
100
0.3
Chars
c
Strings
Arrays
[12345]
I like to eat sushi
1 + 2
Matrices
[5 3
4 2]
31
Variables
Why do we need variables?
Computer memory
salary
9000
constant
new_salary
Example:
>>salary=9000;
>>new_salary=salary*3;
>>disp(new_salary);
27000
variable 27000
Library functions
32
Variables
Another example:
price_bamba=3
The Matlab Console
price_bamba=
3
What happens if you omit the
; ?
33
Variables
Another example:
price_bamba=3
n_bamba=2;
The Matlab Console
price_bamba=
3
What happens when we add the
; ?
34
Variables
Another example:
price_bamba=3
n_bamba=2;
price_bisly=5
n_bisly=3;
The Matlab Console
price_bamba=
3
price_bisly=
5
total_price=
21
n_bamba=
5
total_price=
21
total_price=price_bamba*n_bamba+price_bisly*n_bisly
n_bamba=5
total_price
35
Variables
Tip #1: Give your variable meaningful names.
a = 9000
b = 100
are a bad choice for naming variables that store your working
hours and salary!
A more meaningful choice of names would
salary = 9000;
hours = 5;
36
Variables
Tip #2: Dont make variable names too long
salary_I_got_for_my_work_at_the_gasoline_station = 9000;
salary_I_got_for_my_work_in_the_bakery =
salary_I_got_for_my_work_at_the_gasoline_station * 3;
disp(salary_I_got_for_my_work_in_the_bakery);
Very bad choice of variable name!!!
When should I use capital letters ?
Tip #3: Whatever you do - be consistent.
37
Variables Types
Each variable has a type
Why do we need variable types?
Different types of variable store different types of data
>>a=10
a=
10
>>class(a)
ans=
double
Returns the
type of a
variable
The default variable
type in Matlab is
double
38
Variables Types
Each variable has a type
Why do we need variable types?
Different types of variable store different types of data
>>a=10
a=
10
>>b=10.56
b=
10.5600
>>c='Bush'
c=
Bush
>>d=true
d=
1
>>class(a)
ans=
double
>>class(b)
ans=
double
>>class(c)
ans=
char
>>class(d)
ans=
logical
39
Variables Types
Different variable types require different memory allocations
>>a=10.4%doublerequires8bytes
a=
10.4
1
How many bytes are required to store this variable: c='Bush'?
1 0 0 0 1 1 0 0
1 0 1 1 1 0 0 0
3
0 0 0 0 1 0 0 0
>>b='B'%charrequires2bytes
b=
B
12
1 0 0 0 1 1 0 0
1 0 0 0 1 0 0 0
Memory allocation
and release is done
automatically in
Matlab
1 0 1 1 1 0 0 0
40
Computer precision
limitations
How much is:
>> 0.42 + 0.08 - 0.5
ans =
0
How much is:
>> 0.42 - 0.5 + 0.08
ans =
-1.3878e-017
41
Special variables
ans
>>4*5
ans=
20
>>ans+1
ans=
21
42
Special variables
ans
pi
inf
>>2*inf
ans=
Inf
>>1/0
Warning:Dividebyzero.
ans=
Inf
43
Special variables
>>0/0
Warning:Dividebyzero.
ans=
NaN
ans
pi
>>NaN+1
inf
ans=
NaN
NaN
In the tutorial youll see more
44
Summary
Matlab is a high level language
Matlab working environment
Variables & variable types + how
to use them
45