Introduction to Matlab & Data Analysis
Lecture 1: Introduction
Lecture time:
Sunday 9:00 11:00 Wolfson
Course website: http://www.weizmann.ac.il/midrasha/courses/MatlabIntro/
Eran Eden, Weizmann 2008
Team members
Lecturers:
Natalie Kalev-Kronik kalev001@umn.edu Yuval Hart Maya Geva
Tutors:
Yuval Hart Maya Geva Anat Tzimmer
Exercise checkers:
Anat Tzimmer Ariel Gispan
Tips / formalities
Course website http://www.weizmann.ac.il/midrasha/courses/MatlabIntro The website contains
Course material: Lectures + tutorials + other Matlab resources HW and solutions News
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
HWs 60% + 40% Final Project
Official course book: Mastering Matlab 7, Hanselman & Littlefield Matlab built-in tutorial and references
3
Course references
Tips / formalities
Signing up for tutorials
Levine 101 (#1) Sunday 09:00 11:00 (#2) Wednesday 9:00 11:00 Starts Nov 9, 2011. Choose either.
HW assistance at the computer room
Once a week in Levine 101 Wednesday 11:00-13:00 (Starts Nov 16, 2011)
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
Producing publication quality graphs (Maya Geva)
Solving ODEs for a living:
Math modeling of cancer treatment (Natalie) Protein production (Prof. Nir Friedman)
TBD (Yuval Hart)
For whom is the course intended?
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 73 10 3 8 21 21 4 21 21 10 18 8 10 2 21 21 21 45 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
Memory
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
Changing current directory
Prompt / Command line
Files and Directories inside the 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
o
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 % Play the movie twenty times movie(F,20)
5
-5
2 0 -2 y -3 -2 -1 x 0 1 2
24
Help!!!
help doc
Example: doc disp
Google
25
Matlab toolboxes
26
Introduction to Matlab & Data Analysis
The Matlab Building Blocks - Variables, Arrays and Matrices
Topic #2:
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 illegal identifiers: 007bond #time ba-baluba if while
28
Examples of Legal identifiers: time day_of_the_week bond007 findWord
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
Chars
c
Numbers
100 0.3
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:
27000
variable
>> salary = 9000; >> new_salary = salary * 3; >> disp(new_salary); 27000
Library functions
If we update salary, new_salary will NOT be updated automatically
32
Variables
Another example:
The Matlab Console price_bamba = 3
price_bamba = 3
What happens if you omit the ; ?
33
Variables
Another example:
The Matlab Console price_bamba = 3
price_bamba = 3 n_bamba = 2; What happens when we add the ; ?
34
Variables
Another example:
= = = = 3 2; 5 3;
The Matlab Console price_bamba = 3 price_bisly = 5
price_bamba n_bamba price_bisly n_bisly
total_price = 21
n_bamba = 5
total_price = 21
How can we fix it?
35
Redefine total_price total_price = price_bamba * n_bamba + price_bisly * n_bisly n_bamba = 5 total_price
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 >> class(a) ans = double >> b = 10.56 b = 10.5600 >> class(b) ans = double >> c = 'Bush' c = Bush >> class(c) ans = char >> d = true d = 1 >> class(d) ans = logical
39
Variables Types
Different variable types require different memory allocations
>> a = 10.4 %double requires 8 bytes a = 10.4 1 2
1 0 1 1 1 0 0 0
3
0 0 0 0 1 0 0 0
8
1 0 0 0 1 0 0 0
1 0 0 0 1 1 0 0
>> b = 'B' b = B 1
%char requires 2 bytes Memory allocation and release is done automatically in Matlab
2
1 0 1 1 1 0 0 0
1 0 0 0 1 1 0 0
How many bytes are required to store this variable: c = 'Bush' ?
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: Divide by zero. ans = Inf
43
Special variables
ans pi >> NaN + 1 inf ans = NaN NaN In the tutorial youll see more
>> 0 / 0 Warning: Divide by zero. ans = NaN
44
Summary
Matlab is a high level language
Matlab working environment Variables & variable types + how to use them
45