250 likes | 267 Views
Introduction to MATLAB. Morris Law March 21, 2018. Outline. Matlab software Entering matrix Matrix function and manipulation Matlab graphics Matlab programming: writing M-file and functions Function input & output Control flow. MATLAB software.
E N D
Introduction to MATLAB Morris Law March 21, 2018
Outline • Matlab software • Entering matrix • Matrix function and manipulation • Matlab graphics • Matlab programming: writing M-file and functions • Function input & output • Control flow
MATLAB software • Multi-platforms (Windows, Linux, MacOSX) • Technical computing • Script language • Variables are all matrices • Expandable by adding toolboxes
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)
Matrix function and manipulation • ones(3), zeros(3), eye(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)
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)
Exercise on Matrix functions • m = magic(4) • sum(m) • sum(m’) • sum(diag(m)) • r = rand(4,3) • size(r)
Matrix elements >> x = [-1.3, sqrt(3), (1+2+3)*4/5 ]; >> x(1) x(1) = -1.3000 >> x(5)= abs(x(1)) x = -1.3000 1.7321 4.8000 0 1.3000 >> y = 1:5 y = 1 2 3 4 5 xy = [x;y] xy = -1.3000 1.7321 4.8000 0 1.3000 1.0000 2.0000 3.0000 4.0000 5.0000
Matrix elements (cont) >> A = [1,2,3; 4,5,6; 7,8,9]; >> r = [10,11,12]; >> B = [A;r]; >> C = [A,zeros(size(A));ones(size(A)),A] C = 1 2 3 0 0 0 4 5 6 0 0 0 7 8 9 0 0 0 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9 >> D = C(1:3,:) >> D = C(:,3:4)
Matrix Arithmetic • Additions (+) • Subtraction (-) • Multiplication (*) • Right division (/) • Solve A = xb by x = A/b • Left division (\) • Solve Ax = b by x = A\b • Power (^)
Element-by-Element Operation • Using Period (.) x = [1,2,3]; y = [4 5 6]; >> x .* y ans 4 10 18 >> x ./ y ans 0.25 0.4 0.5 >> x .\ y ans 4 2.5 2 >> x .^ y ans 1 32 729 >> x .^ 2 ans 1 4 9 >> 2 .^ [x y] ans 2 4 8 16 32 64
MATLAB graphics • If y is a vector, plot(y) produced a linear graph • plot(x,y) 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+)’);
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); #surf(Z); #contour(Z);
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
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
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
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
Control flow • If and break statement if expression, break, end or if expression statements [elseif expression statements] [else expression statements] end • For Loops for v = expression statements end • While Loops while expression statements end
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
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
General Purpose commands (3/5) • Working with files and the operating system cd change current working directory delete delete file diary save text of MATLAB session dir directory listing getenv get environment value ! execute operating system command
General Purpose commands (4/5) • Controlling the command window clc clear command window echo echo commands inside script files format set output format home send cursor home more control paged output in command window
General Purpose commands (5/5) • Starting and quitting from MATLAB matlabrc master startup M-file quit terminate MATLAB startup M-file executed when MATLAB is invoked
Search for documentation • helpdesk • http://www.mathworks.com
Reference • Booklet on Introduction to MATLAB • MATLAB primer (version 3) • MATLAB primer (version R2017b)