Transcript Slides
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