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