matlab tutorial - university of waterloo
TRANSCRIPT
Matlab Tutorial
�� � �� � ��� � � �� � � � � � � � � � � �� � � � �� � � � � �
���� � �� ��� � � !
"
Outline
� � � �� � ��� � � � ��
� ��� � � � � � � �� � �
� � � �� � � � � � � � � � � �
� � �� � � � � �
� � � �� �� � � � � � � � � ��
� � � � � � � � � � � ��
�
What is Matlab?
� � � � � � � � � ��� ��� ��� � ���
� �� � �� ��� �� � � ���� � � ��� � ��� !"� � � # $% &' � � � � � �( � � $ � % � � �
� ! � � $% ) � � � � � ' % � � � $% &' � � � � $ �+* � �( �� � �� � � & ! � � � � �
( ��� ' � # ��, � � � $ �+* � � � � ! �� !.- #�( � # & � $� � �% % � � � # �� � ' �� �+/
0 12 3 14 576 8 9": ;=<> ?: 6 ;"@ < ;> A B B: 6 8 C 5 A6 > B A@D
E FHG CG G 6 G 9JI > 5> G 6 ;JK 5> : G 9 5ML G C 5 A6
E N : O< @ 5 8 G 6 ;> I O P A 9 5 8 8 A OQ : CG C 5 A6
E RM6 S 576 < < @ 576 S G 6 ;> 8 5 < 6 C 5 T 8 S@ G Q ? 5 8>
E 0 A ; < 9 576 SVU > 5 O: 9G C 5 A6 U G 6 ; Q @ A C A C I Q 576 S
E W @ A S@ G O O 576 SVU G Q Q 9 5 8G C 5 A6 ; < K < 9 A Q O< 6 C U G 6 ; XYZ ; <> 5 S6
[
Getting Started
� � � � �� �� � ��
� � �� � � � � � � � � �
� � � ��� �� �� � ��� � � �
� � � � ��� ��� � � � ���� �� � � � � �� � � � � � � �� � � �� � � � � � � �
�� � �� ���� �� � � �� �� � � �� �� �� � �� � � �� � � �� �
�
Running Matlab
� � � � � � �� � � �� �
� �� � � �� � �� matlab
� � � � � � �� � �� � �� � � � ��
�� � � � � ��� � � �� matlab -nodesktop -nosplash
� � � � � � � �� � � �
� � � � � �� � � � � � matlab -h
� �� � � � �� � �� � � � � �� � � � � � � � �� � � � � � � �� � � � �
�� ��� �� � � � � � � � � � ����� �� � � �� � � �� � �� �� � � � � � ! � " � #
! �� $ ��
�� ��� % � � � � ! �� � � � � &� � (' � " � � � � � � � � � � � ) �� $ ��
E Y > < 0G C 9G P* + , A@ 9G C < @ B A@ G 9 9 G > > 5 S6 O< 6 C>
-
�� � � ! �� �� � � � � � � �� � �� " � ! � � � � �� ! � � ! &
� � � � � �
%� #� �� & � � �� � � � � �� & � � � � &� � � � !�� � � ��
� �� ! � � �� �� �� � � � � � � � � � � � � ! � � �
� � � � � � � ��
� � � � ! � �� � � "� � # � � � � � � & � ! �� & � � � �� & � � " � ! �� � � " � ���
� � � � " � � � � � � � � � � �� $ ! � � � �� � � � & � � � � !� �� ��
� �
!
How does Matlab work?
� ��� � � � �� � � � � � � � � � �
� �� � � � � � �� � � � � � � � �� �� � � � � � � � � � ��
� � � � � � � � � � �� �
� � � � � � � � � � �� � � � � � � � � � � � � � � � �� � � � � �� � � � � � �
� � � � � � �
� � � �� � � � � � �� �� � � � � � � � � � � � � � � � � � � �� � �� �
� � � �� � � � �� �� �� � �� � �� � � �� � �� � � � � � � � � � � � � � � � � �
� � which � � � �� � � � � �� � � � � �� � �
�
Basic Operations
� � ��� � � � �� � � � � �� � � � � �
� � � � � � � �� � � � � �� �� � � ��
� � � � �� � � �� �� �� � � � ��
� � � � � � � � � � � � � � � � � � � � � � � � � � � �� �� � � � � �
��� � �
� ��
� � �� � �� � � � � � � � � � � � � �� � � � � � � �� � � �
� � � � � �� � � � � � � � � � � �� �� � �
Basic Example 1
� � ��� �� � � � � � � �
� �
� � �
� � �
� � � � ! � � �� �
� � � �� � � � � ! �� � � � �
� � � �� � � � � � " � � � ! � � ! � � ! � �� � � ��
� � � � ! � � �� ��
� � ! � �� � ��
�� � �
�
Basic Example 2
� � ��� �� � � � � �
� �
� �
� �
� � �� �
� � ! �� � �
� � � �
� � �� � �
� � ! �� �
� � �
" �
Transposes
� � � � � �� � � � �� � � �� � �� � � � �� � � �� � � �� � � � �
� ��� � � � � � � � � � � � � � �� � � � � � � �� � �� �� �
� � � ��� �� � � � �� � � � � �
� ��� � � � � � �� � � � � �� � � � � � �� � � � � �� � � � � � �� � � � �
� � ��� � ! �
�� � � � � � �� � � � �
�� � � � � � �� � � � �
�� � � � � � �� � � � �
� � �� �
� � ! ��� � � � � � �� � � � �
�� � � � � � �� � � � �
�� � � � � � �� � � � �
" "
Basic Example 3 - Solving Ax=b
� � ��� �� � � �� � � � � � �� � � � �� � �� � � �
� � � � �� � � � � � � �
� � � � � ��
� �
�� � � � �
� �� � � � �
�� � � � �
� � � � � $ � � � � �
� �
�� � � � �
� �� � � � �
�� � � � �
" �
Useful commands
� ��� ��� � � � � � � � � �� � � � � � � � � � � � � � � �
� ��� � � � � � �� � � � �� � � � � � �� �
� �� � � � � � � � � ��� � �� �
� � � � � � � � �� � � � �� � � ��
� � ��� � � � � � �� � � �� � � � � �� �
� � �� � � � �� � � � � �� � � � � � � �� � � ��
� � � � � � � � � �� � � � �� � �� �� � � � � � � � � � � �
� � � � � � � � � � �� � � � � � � � � � �" [
help
� ��� ��� ��� � � � � � � � � �� �� � � � � � �� � �� � � � � � �� � � � � � � � �
� � �� � ��� � � � � � � � � � � � � � �� � � � � � � � �
� � � � � � � � � � �� � � � � � � �� � � � � � � � � �� � � � � ��
� � �� � � � �� � � � �� � � � � � �
� � �� � � � � � � � �� � � � � � � � � �� � � � � � �� � �� � �
� ��� � � � � � � �� � � � � � � � � � � �� � � � � � �
� ��� ��� � �� �� � �� � � �� � �� � �� � � � � � �� � � � � � � � �� � � �
" �
lookfor
� � � � � � � �� � � � � � � � � � � �� � � � � � �
� ��� � � � � �� � � � � � � � �� � � � � � � � � � � � � � � � � � � � � �
� ��
� ��� � � � � � �� � � � ��� �� � � � � � � � � � � � �� � � � � � � ��
� � � � � � � � � �� �
� � � � � � � � ��
" -
more
� �� � � � � � � �
� �� � � � � � � � � � � � � � � � � �
� � � �� � � � � � � � � �� more � � � �� �
" !
clear
� � � � � � � � � �� � � � � � �� � � � �
� � � � � � � � � � �� � � � � � � �� � � �� � � � � � � � � � �� � �
� � � � � � � � �� � � � � � � �� � � ��
� � � � � � � � � � � �� �� �� �� � �� � �� � �� � � ��� � � � � � � �� � � � � � ��
� � � � � � �� ��
� � � � � � � � � � � � � � � � � � � � � � � � �� � � ��
� � � � � � � � � � �� � � �� �� � � � �" �
close
� � ��� � � � � � �� � � � � � � � � �� �
� � ��� � � � � � � � � �� � � � � � �� � � �� �� �
� ��� � � � � � � � � � � � �� � � ��" �
whos
� � �� � � �� � � � � � �� � � ��
� � �� � � � �� � � � � � �� � � ��� � � � � ��� � � � � �� � � �
� � � &� !
� � � � ) ' � � # � � ! % � � ! !
� � ! � � � � � � � & �� �� � � #
� � �� � � � � � � "� �� � � �� � � #
# � �� � � � � � � "� �� � � �� � � #
' � �� � � � � � � "� �� � � �� � � #
�� � � " � � � �� ! � � � � � � � � � � ! � ! �� �� �� � # � � !
E Y > < B: 9 5 B I A : �< < Q S< C C 576 S G @ @ G I > 5ML < O 5> OG C 8 ?<> � @ < O< O P < @ C ?G C
0G C 9G P 5> ��� A > < C
" �
format
� � � � � �
� � ! ��� � � � �
E � � � � � � � � � ��
� � � � �
� � ! ��� � � � � � � � � � � � � � �
E � � � � � � � ! &� � � �
� � � � �
� � ! ��� � � � � � � � �
E ?< 9 Q B A@ OG C
� �
Command line tricks
� � � � �� � � �� � �� � � �� � � � � �� � � � � � �� � ��
� ��� �� � �� � � �� � � � � � �� � � � � � � � � � � � �� � � � � � �� � �
� � � � � �� � � � � �
� � � � � � � �� � � � � �� � � � � �� � �� � � � � � � � � � � �� � � � �
� �� � � � �� � � �� � � � �� � � � � � � � � � � � � � � � � �� � � � �� � ��
� � � � � �� � � � � � � � � � � � � � �� �� � � � � � ... � � � � � � � �
� � � � � �
� "
Constructing Matrices
� �� � � �� � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � �� � �� ��
� �� � � �� �� �
� ��� � ones � zeros
� ��� � � � � � � � � � � � � � �
� � � � � �� � � � � � � �� �� �� � � � � �� � �
� � � � � �� � � � � � �� �� � � �� �� �� � � � � � �� � �
� � � � � � � � � � � � � �� � � �� � �
� � � � � � �� � � � � � � � � � � � � � � � � �� � �� � � �� � � � � � � � �� � � � �� �
� � � � � � � � � � � � � � � � � �� � � �� � � � � � � � � � � � � � � � � � �
� � � � �� � � � � � � � � �� � � � � � � � � �
� �
Example
� � �� � ' � � � ! � � � � �
�� �
� � �
� � �� � � � � ! � � �
�� �� � �
� � �
� � �
� � � � � �� ��� � � � �� � ��� � � ��� �� � � �
� � �
� � �
� � �
� � �
� [
Dimensions of Matrices and Vectors
� � ��� � � � � �� � � � ��� � � � � � � � � � � � �
� � � ��� �� � � � � � � �
� �
� � �
� � �
� � � � � � � ! (' � � � �
��
�
��
�
� � � � �� � � � �
� �
� � � �
� � � � �� � & �� �
� � ! ��
� �
Control Structures
� � � � � � � � � � �
� � � � �� ��
� � � � �� ��
� � � � � � � � � � � � � � � � �
� � �
� � �
E � ? 5 9< 9 A A Q >
�� � � � � � � �
� � � � � �
� � �
� -
Control Structures (cont.)
� � � � � � � � � �
� �� � � ! ! � �
! � � � � � � � � !
� � ) � � �� � � ! ! � �
! � � � � � � � � !
��
�� � ) �
! � � � � � � � � !
� � �
� !
Relational and Logical Operators
� � �� � � � � � �� � � � �
� � �� � � �� � � %� �� �
E 3 A S 5 8G 9 A Q < @ G C A@>
� � � � �� %
� � � � � �
� � � � �
� � � �
E � � ��� �� �
� �
� � � � � � � � �
� � � � � � � � � � � � � �
� �
� � � � � � � � �
� �
Vectorizing Loops
� � � ! � � � � �� � ! � �� � � � � � �� � � � � � � � �
� � � � � �� � � �� � & � � ! � � � � �� � ! �
� ! � � � � �� � ! � � � � � � � ! � � � � �� � ! � � � � � � � � �
� � "
� � � ! � � � � �� � !
� ! � � � � �� � ! �
��� � � �� � �� � � � � � �� � � �� � �� � � � � � �� � � � �
� �� � �� � � �� � �� �
� � � ! � � � � �� � ! � �� � � � � � �� � � � � � � � �
� � � ! � � � � �� � ! � � � � � ! � � � � �� � !� � � � � � �
� ! � � � � �� � ! �
��� � � �� � �� � � � � � �� � � �� � �� � � � � � �� � � � �
� �� � �� � � �� � �� �
� �
Script files
� � � �� � � � � �� � �� � � � � � � �� � � �� � � � �� � � �� � � � � � � � � �
� � � � � � � �� � � � � �� � � � � � � �� � � � � � � � � � � � � � � ��
� � � � � � � � �� � � � �� � � �� � � � � � � � �
� � � � � � � � �� � � � � � � � � � � �� � � � � � � �� � � � �� �� � � � � ��
� � �� � � �� � �� � � � � � � � � � � �� � � �� � � � � � �� � � � � �
� � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � �� �
� � � � � � � �� � � ��
� � � � � � � �� � � � � � �� � � � � � � �� � � � � � � �� � � � �
� �
Script Example
� � � �� �� � �
� � � ! � �� � �
� � � � �� " � � �
� � � � � � � � � � � � � � � �
# � � � � � � � � � � � � � � � �
�� � � �� � & �� � �
� � � � �� (' � �
� � ' �� � ! � ! ' � �� � � �
� % &� � ! � � � � � � �� � � � �� � &
� � � �� �
" � � ! �� � � �� � � �� � � � � � � � � � # � � � # � � � � � � � � �
� � � � � � � � � � " � �
� � "
[ �
Function Files
� � � � � � �� � � � �� � � �� � � � � � � � � �
� � � � � � �� � � �� � � � � � � � � � � � � �� �
� �� � � � � � � � � � �� � � � � � �� � � � �� �� � � � �� � � �� � � �� � � �
� � �� �
� �� � � � � � � �� � � � � �� � � � � � � � � � � � � �� ��
� � � � � � � �� � �� � � � � � � � � � � � � � � �� �� � � � � � � �
� � � �� �
return�� � � � �� � � �
[ "
Function Example
� � � � � � � � � � � �� � ! � � � � � � � � � " � �� � ! � � � � &� " �
� � & � � � $ �� � � �� ! & � � � ! " ! � � # � " � & � � � & � � ! ��
� � # � ! � & � � � � � � �
� & ! � � � � � � �� � � � �� � � & � & � � � �� �
� � � &� "� � �
� � � � �� � ! � � � � � � " � �� � !� � � � � � � �
� � ! � � � � &� "� � �
� � � � �� � ! � � � " � �� � ! � � � � � � � ! � � � � � �� � & � � � " � �� � ! � � �
� � ! �� � � � �� � ! � � � " � �� � ! �
� � "� � � �� �
[ �
Function Example
� � & � � � � � �
� & � � � $ �� � � �� ! & � � � ! " ! � � # � " � & � � � & � � ! ��
� # � ! � & � � � � � � �
� � �� �� � � � � � � � � � � � � �
� � � � � � � �� � �
� � ! �� �� � � � � � �� � � � � � �� � � � � � �� � � � � � �� � �� � � �� � �� �
� � ��
� � � � � � � � � �� � �
��
� � � �� � � � � � � � � � � �
[ [
Debugging
� � � � ��� ��� �� �� �
� � � � � �� �� � �� � � � � � � � �
� � � � � � �� � � � � � � � � � � � � � � � � � � �
� � � �� � � � � � � � � � � � � � � � � � � � � � �
� � � � �� � � � � � � � � � � � � � � � � �
� � � � � � � � � �� � � � � ��� � � �[ �
Text Strings
� ��� � � �� � � � �� � �� � � � � � � � � � � �� � �
� ��� � � � � � �� � ��� � � � � � � � � � � � � � �� � � � �� � � � � � � �
� � �� � � � �� � � � �� � � ��
� � � � �� � � � � � �� � � �� �� � � � � � � � � � � �� � � � � � � � � � � � �
� � � � � � � � � � � � � � � � � � � � � � �� � � �� � � � � � � � � �
� � � �� �
� � �� � �
� � � � � �
� � � � � � � � � � � � � �� ! � � � � � � � � � � �� ! � � � � � � �
� � " ! � � �
� � � � � � �
[ -
Graphics
� � � �� � �� � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � �
� �
� � � � � � � � � � �� � � �� � �� � �� � � � �� � � � �� � � �� � � �� � �� � � � � � � �
� � � �� ��
� � � �� � � � � �� � �� � �� � � �� � � � � � � � � � �� � � � � � �� � � ��
� � � � � � � � � � � �� � � �� � �� � �� � � � � � � � � � � � � �
[ !
Plots
� � ��� � ��� �
� � � � � � � � � � � � � � � � �� �
� � ��� � ��� �� � � � � � � � � � � � � � � � � � � �� � �� � � � �� � �� � � � � � � �
� � � � �� � � � � � � � � �� � � �
� ��� ��� � ��� � � � � � � �� � � � � � � � � � � � � �� � � �
� � � � � � � �� � �� � � � � � �� � � � � �� � � � � �� ��
� ��� � �� � � � � � � � � � � � � � �� � �� � � � � � � �
� � � � �� � � �
� � � � � � � �� � �� �� � � �� � � � � � � � � � � � � � �� �� �
� � � �� � �
[ �
2D plots
� � � � ��� �� � � � �
� � #�
� �� � �
� � #�
� � � "� ��� � � �
� � ! �� � � � � � � � � � �� � � � �� � #
�� �� � � �� � �
� � � � � � � � � � � �� � � � � � �� �
� � � � �� � � � � � �� ! � �
� � #� �� � � � � � �� ! � �
� � ! �� � � � � � � � � � �� � � � �� � #
�
� � � "� � � � � � �
� � � � � � " � ! �� �� � !
� � � � � ! �
[ �
1 2 3 4 5 6 7 8 9 100
2
4
6
8
10Linear Function
X axis
Y a
xis
1 2 3 4 5 6 7 8 9 100
20
40
60
80
100[ �
2D plots (cont.)
� � � � � � ! � � � � � � � �� � � � �
� � #�
� �� �
#�
� ��� � � � � � � � � � �
� � #�
� � � � � � � ! � � � � �� � � � � �
#�
� � � �%� � � � � ! � � &� � �� & �
�� � � � � �� � � � � �� � �� � �� � � � � �� �� � � �� � � � �
%� � � � � ! � � &� � �� & � �
�� � �� � �� � � �� �� � �� � � �� � � � �
� � � � � �� � #�
� �� � � �� � �
� � &� � " � �
� � � � � �� � #�
� � � � � � � � � �
� � �� ! � � � � � � � � � �
� � � �� � � " � � � � � �� � � � �� � � � � � �� � �
� �
3D plots
� � �� �� �
� � � � � �� � � � � �� � � � �
� � #� � �
� � ' � ! � �� � � � �� ! � # � �
� � ! �� �� � #� ' �
� � �� � � � � � � � � � � � � �
� � $ � � � � � �� � � �
� � � � � � " � ! � � ! & � "� � !
� �
Efficiency Issues
� � � � � ��� � � � �� � � � � � �� � � �� � � � � �
� �� � � � � � � �� � � �� � � � � � �� � � �� � � � � �
� � � � � � � � � � � � � �� � � �� � � � � � � �
� � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � �� � � � �
� �
Summary
� ��� � help � �
lookfor � � � � �� �� � � � ��
� ��� � more on � � � � � � � � � � � � � � �� �� � �� � � �� � � � � � � � � � �� � ���
� � � � � � � � � � �� � � � � �� � � � ��� � � � � � � �� � � � � � �� � � ��
� � �� � � � ��
� ��� � � � �� � � �� � � � � � � � � � � � � � �� � � � � � �� � � � ��
� � � � � �� � �� � � � �� �� � � �� � � � � � � �� � � �� � � � � � � �
� �� � � � � �� � � � � � � � � � � � � � �� � � ��� �� � � � � � � ��
� � � � � � � �
� -