Introduction to Matlab

advertisement
Introduction to Matlab
Tutorial for CS4MN3/SE3X03
Wen Yu
McMaster University
Matlab Overview
• Matlab is a commercial "Matrix Laboratory"
package which operates as an interactive
programming environment
• Matlab is installed in Moore
- ssh moore
- change to working directory
- matlab
- quit or exit
Entering matrices
• On the interactive window
A = [1,2,3; 4,5,6; 7,8,9]
A = [1 2 3
456
789]
• From Files
- data files: load data.ext
- script files: data.m
• Built-in statements and functions: rand(2,3)
• From blocks: B = [A, zeros(3,2); zeros(2,3), eye(2)]
Operations
• Matrix operations: +, -, *, ^, ‘, \, /
- x = A\b is the solution of A x = b
- x = b/A is the solution of x A = b
- b/A = (A’\b’)’
• Array operations (entry-wise): .*, .^, .\, ./
- [1,2,3,4].*[1,2,3,4] = [1,2,3,4].^2 = [1,4,9,16]
Statements, Expressions, and Variables
• Matlab is an expression language
• variable = expression, or simply expression
• Expressions are assigned to default variable
ans
• A statement is terminated with (;), (,) or
carriage return
• A statement can be placed in several lines
• Several statements can be placed in one line
Control Statement
• for i = m:k:n
statements
end
• while relation
statements
end
• if relation
statements
end
Relations
• Relational operators: <, >, <=, >=, ==, ~=
• Logical operators: &, |, ~
• A relation between matrices is true if the
relation of each entry is true
• any(any(A ~= B)) returns true if any entry of A
and B is not equal
Submatrices and Colon Notation
•
•
•
•
•
•
•
•
1:5 gives [1 2 3 4 5]
0.2:0.2:1.2 gives [0.2, 0.4, 0.6, 0.8, 1.0, 1.2]
5:-1:1 gives [5 4 3 2 1]
B(1:4,3) first four entries of the third column
B(:,3) the third column
B(1:4,:) first four rows
C=B, B(:,[2 4 5]) = C(:,1:3)
B(:,[2,4]) = B(:,[2,4])*[1 2;3 4]
M-files
• A script file consists of a sequence of normal
MATLAB statements
• Variables in a script file are global
• Function files provide extensibility to MATLAB
• Variables in a function file are by default local
• function [out1, out2, …] = fname(in1, in2, …)
• A comment line begins with the % symbol
Text
•
•
•
•
•
s = 'This is a string‘
disp(‘This message is hereby displayed')
error('Sorry, the matrix must be symmetric')
iter = input('Enter the number of iterations: ')
fprintf(1,‘This is a string, too.’)
Output Format.
• format short fixed point with 4 decimal places (the
default)
• format long fixed point with 14 decimal places
• format short e scientific notation with 4 decimal places
• format long e scientific notation with 15 decimal
places
• format rat approximation by ratio of small integers
• format hex hexadecimal format
• format bank fixed dollars and cents
• Format compact suppress most blank lines
Graphics
Polar plot:
t=0:.01:2*pi;
polar(t,abs(sin(2*t).*cos(2*t)));
Line plot:
x=0:0.05:5;,y=sin(x.^2);,plot(x,y);
Stem plot:
x = 0:0.1:4;, y = sin(x.^2).*exp(-x);
stem(x,y)
Graphics – cond.
Mesh plot:
z=peaks(25);, mesh(z);
Quiver plot:
Surface plot:
z=peaks(25);, surf(z);, colormap(jet);
Contour plot:
z=peaks(25);,contour(z,16);
Titles, Axes labeled, and Text
•
•
•
•
title graph title
xlabel x-axis label
ylabel y-axis label
text position text at specified coordinates
Axis
• axis([xmin,xmax,ymin,ymax]) set axis scaling to
prescribed limits
• axis(axis) freezes scaling for subsequent graphs
• axis auto returns to auto-scaling
• v = axis returns vector v showing current scaling
• axis square same scale on both axes
• axis equal same scale and tic marks on both axes
• axis off turns off axis scaling and tic marks
• axis on turns on axis scaling and tic marks
Line- and Mark-types
• Linetypes: solid (-), dashed (--). dotted (:),
dashdot (-.)
• Marktypes: point (.), plus (+), star (*), circle
(o), x-mark (x)
Other Useful Command for Graphics
•
•
•
•
figure creates an empty figure window
hold on freezes the current graphics screen
hold off releases the hold
print -deps -f3 filename saves to filename.eps
the graphics figure 3
• saveas(gcf, ‘plot2.eps’) save current figure as
graphics file.
References
• MATLAB Primer, Kermit Sigmon, Department
of Mathematics, University of Florida
• Introduction to Matlab, Joanna Waniek
• Matlab Tutorial, Prof. Matthias Hein
• Introduction to MATLAB, Markus Kuhn,
University of Cambridge
Download