410 likes | 434 Views
Explore the fundamentals of using Matlab in engineering applications, including interactive calculations, vectors, matrices, and graphical illustrations. Discover how to manage variables, use the help system, and work with matrices and arrays efficiently.
E N D
Introduction to Matlab-1 Laboratoire Mathématiques, Informatique et Applications Lecture 1 – Matlab Basics
What is Matlab? • A software environment for interactive numerical computations • Examples: • Matrix computations and linear algebra • Solving nonlinear equations • Numerical solution of differential equations • Mathematical optimization • Statistics and data analysis • Signal processing • Modelling of dynamical systems • Solving partial differential equations • Simulation of engineering systems
Matlab used (on a daily basis) in many engineering companies
Matlab used in many courses • Numerical analysis • Signal and Systems I • Signals and Systems II • Modeling of Dynamical Systems • Automatic Control, Basic Course • Automatic Control, Advanced Course • Nonlinear Control • Hybrid and Embedded Control Systems • Chemical Process Control • Control Project Course • Signal Theory • Digital Signal Processing • Adaptive Signal Processing • Signal Processing Project • Communication theory • Advanced Communication Theory • <and many, many more>
Today’s Lecture • Matlab Basics • Background to Matlab • Interactive calculations • Vectors and matrices • Graphical illustrations • Next lecture: Matlab programming
Matlab Background • Matlab = Matrix Laboratory • Originally a user interface for numerical linear algebra routines • Commercialized 1984 by The Mathworks • Since then heavily extended (defacto-standard) • AlternativesComplements • Matrix-X Maple (symbolic)Octave (free; GNU) Mathematica (symbolic)Lyme (free; Palm)
Construction • Core functionality: compiled C-routines • Most functionality is given as m-files, grouped into toolboxes • m-files contain source code, can be copied and altered • m-files are platform independent (PC, Unix/Linux, MAC) • Simulation of dynamical systems is performed in Simulink Contr. Syst. Sig. Proc Simulink m-files C-kernel
Matlab Desktop Launch Pad Command Window History
Matlab Desktop – cont’d Workspace Command Window Current DIrectory
MATLAB Demo • Demonstrations are invaluable since they give an indication of the MATLAB capabilities. • A comprehensive set are available by typing the command >>demo in MATLAB prompt.
Interactive Calculations • Matlab is interactive, no need to declare variables • >> 2+3*4/2 • >> a=5e-3; b=1; a+b • Most elementary functions and constants are already defined • >> cos(pi) • >> abs(1+i) • >> sin(pi) • Last call gives answer 1.2246e-016 !?
Variable and Memory Management • Matlab uses double precision (approx. 16 significant digits) • >> format long • >> format compact • All variables are shown with • >> who • >> whos • Variables can be stored on file • >> save filename • >> clear • >> load filename
The Help System • Search for appropriate function • >> lookfor keyword • Rapid help with syntax and function definition • >> help function • An advanced hyperlinked help system is launched by • >> helpdesk • Complete manuals as PDF files
Variables • Don’t have to declare type • Don’t even have to initialise • Just assign in command window • >> • >> a=12; % variable a is assigned 12 Matlab prompt comment operator suppress command output assign operator Try the same line without the semicolon and comments
Variables (continued …) • View variable contents by simply typing the variable name at the command prompt • >> a • a = • 12 • >> • >> a*2 • a = • 24 • >>
Workspace • The workspace is Matlab’s memory • Can manipulate variables stored in the workspace • >> b=10; • >> c=a+b • c = • 22 • >>
Workspace (continued …) • Display contents of workspace • >> whos • Name Size Bytes Class • a 1x1 8 double array • b 1x1 8 double array • c 1x1 8 double array • Grand total is 3 elements using 24 bytes • >> • Delete variable(s) from workspace • >> clear a b; % delete a and b from workspace • >> whos • >> clear all; % delete all variables from workspace • >> whos
The : operator • VERY important operator in Matlab • Means ‘to’ • >> 1:10 • ans = • 1 2 3 4 5 6 7 8 9 10 • >> 1:2:10 • ans = • 1 3 5 7 9 Try the following >> x=0:pi/12:2*pi;>> y=sin(x)
The : operator and matrices • >>A(3,2:3) • ans = • 1 7 • >>A(:,2) • ans = • 2 • 1 • 1 A = 3 2 1 5 1 0 2 1 7 What’ll happen if you type A(:,:) ?
Vectors and Matrices • Vectors (arrays) are defined as • >> v = [1, 2, 4, 5] • >> w = [1; 2; 4; 5] • Matrices (2D arrays) defined similarly • >> A = [1,2,3;4,-5,6;5,-6,7]
Matrix Operators • All common operators are overloaded • >> v + 2 • Common operators are available • >> B = A’ • >> A*B • >> A+B • Note: • Matlab is case-sensitive • A and a are two different variables
Indexing Matrices • Indexing using parentheses • >> A(2,3) • Index submatrices using vectorsof row and column indices • >> A([2 3],[1 2]) • Ordering of indices is important! • >> B=A([3 2],[2 1]) • >> B=[A(3,2),A(3,1);A(2,2),A(2,1)] Column no. 1, 2 Rows no. 2, 3
Indexing Matrices • Index complete row or column using the colon operator • >> A(1,:) • Can also add limit index range • >> A(1:2,:) • >> A([1 2],:) • General notation for colon operator • >> v=1:5 • >> w=1:2:5
Matrix Functions • Many elementary matrices predefined • >> help elmat; • >> I=eye(3) • Elementary functions are often overloaded • >> help elmat • >> sin(A) • Specialized matrix functions and operators • >> As=sqrtm(A) • >> As^2 • >> A.*A • Note: in general, ”.<operator>” is elementwise operation
Manipulating Matrices A = 3 2 1 5 1 0 2 1 7 • >> A ' % transpose • >> B*A % matrix multiplication • >> B.*A % element by element multiplication • >> B/A % matrix division • >> B./A % element by element division • >> [B A] % Join matrices (horizontally) • >> [B; A] % Join matrices (vertically) B = 1 3 1 4 9 5 2 7 2 Enter matrix B into the Matlab workspace Create matrices A and B and try out the the matrix operators in this slide
Numerical Linear Algebra • Basic numerical linear algebra • >> z=[1;2;3]; x=inv(A)*z • >> x=A\z • Many standard functions predefined • >> det(A) • >> rank(A) • >> eig(A) • The number of input/output arguments can often be varied • >> [V,D]=eig(A)
Matrix vs Element Math Element Math Matrix Math
Circuit Example 10 Ohms + 10V - 3uF 0.01 H I=V/R=10 /
RLC Series .m File %Example4.m - RLC w=linspace(1,40000,1000); i=10./(10+(1./(j.*w.*3.*10^-6))+(j.*w.*0.01)); plot(w,abs(v)); j is intrinsically unless its redefined
Graphics • Visualization of vector data is available • >> x=-pi:0.1:pi; y=sin(x); • >> plot(x,y) • >> plot(x,y,’s-’) • >> xlabel(’x’); • >> ylabel(’y=sin(x)’);
% print the cosine and sine u = 0:pi/20:2*pi; w = sin(u); v = cos(u); figure(1); plot(u,w,'ro-') ; hold on; plot(u,v,'gs:'); xlabel('\theta');ylabel('y'); legend('Sin(\theta)','Cos(\theta)'); title('Sample Plots');
Can change plot properties in Figure menu, or via ”handle” >> h=plot(x,y); set(h, ’LineWidth’, 4); Many other plot functions available >> v=1:4; pie(v)
Graphics • Three-dimensional graphics • >> A = zeros(32); • >> A(14:16,14:16) = ones(3); • >> F=abs(fft2(A)); • >> mesh(F) >> rotate3d on
Three-dimensional graphics • >> A = zeros(32); • >> A(14:16,14:16) = ones(3); • >> F=abs(fft2(A)); • >> mesh(F) >> rotate3d on
Graphics • Three-dimensional graphics • >> A = zeros(32); • >> A(14:16,14:16) = ones(3); • >> F=abs(fft2(A)); • >> mesh(F) • >> rotate3d on • Several other plot functions available • >> surfl(F) • Can change lightning and material properties • >> cameramenu • >> material metal
Graphics • Bitmap images can also be visualized • >> load mandrill • >> image(X); colormap(map) • >> axis image off
MATLAB - Reference: • A Partial List of On-Line Matlab Tutorials and Matlab Books • http://www.duke.edu/~hpgavin/matlab.html • Getting started with Matlab • http://www.engr.iupui.edu/ee/courses/matlab/tutorial_start.htm • A quick reference to some of the key features of Matlab • http://science.ntu.ac.uk/msor/ccb/matlab.html#MATLAB • Matlab tutorial, with lots of links to other tutorials • http://www.glue.umd.edu/~nsw/ench250/matlab.htm • Control Tutorial for Matlab • http://www.engin.umich.edu/group/ctm/home.text.html • A Practical Introduction to Matlab • http://www.math.mtu.edu/~msgocken/intro/intro.html • Matlab Tutorial Information from UNH • http://spicerack.sr.unh.edu/~mathadm/tutorial/software/matlab/
Next Lecture • Programming in MATLAB