Slides

advertisement
Introduction to MATLAB
Morris Law
Jan 5, 2013
1
Outline







Matlab software
Entering matrix
Matrix function and manipulation
Matlab graphics
Matlab programming: writing M-file and
functions
Function input & output
Control flow
2
MATLAB software
 Multi-platforms (Windows, Linux, MacOSX)
 Technical computing
 Script language
 Variables are all matrices
 Expandable by adding toolboxes
3
Entering matrix
 Explicit listing
>> A = [1, 2, 3; 4, 5, 6; 7 8 9]
 M-file
Stored the above statement in ex1.m. Run the
M-file, i.e. >> ex1
 External data files
>> load A.dat
 Built-in statements and functions
>> B = eye(3)
4
Matrix function and manipulation
 ones(3), zeros(3), eyes(3)
 magic(4), hilb(5), rand(4,3)
 size(A), eig(A), det(A), inv(A), diag(A)
 sum(A), prod(A), mean(A), max(A), std(A)
5
Exercise on Matrix functions
Try
 A = [1 2 3; 4 5 6; 7 0 9]
 x = ones(3)
 y = eye(3)
 z = zeros(3)
 d = diag(A)
 det(A)
 inv(A)
 rank(A)
 eig(A)
6
Exercise on Matrix functions
 m = magic(4)
 sum(m)
 sum(m’)
 sum(diag(m))
 r = rand(4,3)
 size(r)
7
Matrix elements
>> x = [-1.3, sqrt(3),
>> x(1)
x(1) =
-1.3000
>> x(5)= abs(x(1))
x =
-1.3000 1.7321
>> y = 1:5
y =
1 2 3 4 5
xy = [x;y]
xy =
-1.3000 1.7321
1.0000 2.0000
(1+2+3)*4/5 ];
4.8000
0
1.3000
4.8000 0 1.3000
3.0000 4.0000 5.0000
8
Matrix elements (cont)
>> A
>> r
>> B
>> C
C =
=
=
=
=
[1,2,3; 4,5,6; 7,8,9];
[10,11,12];
[A;r];
[A,zeros(size(A));ones(size(A)),A]
1 2 3 0 0
4 5 6 0 0
7 8 9 0 0
1 1 1 1 2
1 1 1 4 5
1 1 1 7 8
>> D = C(1:3,:)
>> D = C(:,3:4)
0
0
0
3
6
9
9
Matrix Arithmetic
 Additions (+)
 Subtraction (-)
 Multiplication (*)
 Right division (/)

Solve A = xb by x = A/b
 Left division (\)

Solve Ax = b by x = A\b
 Power (^)
10
Element-by-Element Operation
 Using Period (.)
x = [1,2,3]; y = [4 5 6];
>> x .* y
ans
4
10
>> x ./ y
ans
0.25
32
>> x .^ 2
ans
1
4
729
18
0.4
>> x .\ y
ans
4
>> x .^ y
ans
1
2.5
0.5
>> 2 .^ [x y]
ans
2 4 8
9
16
32
64
2
11
MATLAB graphics
 If y is a vector, plot(y) produced a linear graph
produces a graph of y versus x
t = 0: pi/10: 2*pi;
x = sin(t)
Y1 = sin(t+.25);
Y2 = sin(t+.50);
plot(x,y1,’r-’,x,y2,’g--’)
Title(‘Phase Shift’)
xlabel(‘x=sin(t)’);
ylabel(‘y1=sin(t+)’);
Phase Shift
1
0.8
0.6
0.4
0.2
y=sin(t+)
 plot(x,y)
0
-0.2
-0.4
-0.6
-0.8
-1
-1
12
-0.8
-0.6
-0.4
-0.2
0
0.2
x=sin(t)
0.4
0.6
0.8
1
MATLAB graphics – 3D mesh
 The following commands draw a mesh
x = [-pi:0.1:pi]; y=x;
[X,Y]=meshgrid(x,y);
Z = sin(X).* sin(Y) + cos(X).*cos(Y);
mesh(Z);
1
0.5
0
-0.5
-1
80
60
80
60
40
40
20
20
0
0
13
MATLAB programming
 Two kinds of MATLAB program

1. Script or M-file




sequence of Matlab statements
without input and output
variables are global
2. Functions

with input and output defined as
function [out1, out2, … outN]= funcname(in1, in2, …
inN)

variables are local
14
Writing scripts / M-files
 Use Matlab M-file editor, save the following as
fibo.m
% An M-file to calculate Fibonacci
numbers
f = [1 1]; i=1;
while f(i) + f(i+1) < 1000
f(i+2) = f(i) + f(i+1);
i=i+1;
end
plot(f);
 At the Matlab command prompt, type the following to
run
>> fibo
15
Writing script – another example
 looptest.m
% Fill b with square roots of 1 to 1000 using a for loop
clear;
tic;
for i= 1:1000
b(i) = sqrt(i);
end
t=toc;
disp([‘Time taken for loop method is ‘, num2str(t)]);
% Fill b with square roots of 1 to 1000 using a vector
clear;
tic;
a = 1:1000;
b = sqrt(a);
t=toc;
disp([‘Time taken for vector method is ‘, num2str(t)]);
 Run the program with
>> looptest
16
MATLAB function
 MATLAB functions allow input and output variables
function y = stat(x)
% mean average
[ m n ] = size(x);
if m == 1
m = n;
end
y = sum(x) / m;
 If z is a vector, z = 1:99, type
>> mean(z)
ans
50
17
Control flow
 For Loops
for v =
expression
statements
end
 While Loops
while expression
statements
end
 If and break statement
if expression,
break, end
or
if expression
statements
[elseif expression
statements]
[else expression
statements]
end
18
General Purpose commands (1/5)
 Managing commands and functions
demo
run demo
help
on line documentation
Info
information about MATLAB and MathWorks
lookfor
keyword search through the help entries
path
control MATLAB's search path
type
list M-file
what
directory listing of M-, MAT- and MEX-files
which
locate functions and files
19
General Purpose commands (2/5)
 Managing variables and the workspace
clear
clear variables and functions from memory
disp
display matrix or text
length
length of vector
load
retrieve variables from disk
pack
consolidate workspace memory
save
save workspace variables to disk
size
size of matrix
who
list current variables
whos
list current variables, long form
20
General Purpose commands (3/5)
 Working with files and the operating
system
cd
delete
diary
dir
getenv
change current working directory
delete file
save text of MATLAB session
directory listing
get environment value
!
execute operating system command
21
General Purpose commands (4/5)

Controlling the command window
clc
echo
format
home
more
clear command window
echo commands inside script files
set output format
send cursor home
control paged output in command window
22
General Purpose commands (5/5)
 Starting and quitting from MATLAB
matlabrc
quit
master startup M-file
terminate MATLAB
startup
M-file executed when MATLAB is invoked
23
Search for documentation
 helpdesk
 http://www.mathworks.com
24
Reference
 Booklet on Introduction to MATLAB
 MATLAB primer (version 3)
25
Download