26 - 3/20/2000AME 150L1 M ATLAB ®
26 - 3/20/2000AME 150L2 M ATLAB ® vs. Fortran Fortran Positives –First Compiler –Legacy Codes –Efficient Numerically –Portability Fortran Negatives –Debugging Hard –Cumbersome –Object Orientation pasted-on M ATLAB ® Positives –Interactive mode –Wealth of 3rd party “notebooks” –Matrix Oriented –Efficient I/O and Graphics M ATLAB ® Negatives –Syntax cumbersome –Command Line oriented
26 - 3/20/2000AME 150L3 M ATLAB ® Usage For the next 4 lectures –Slide will introduce topic Useful in reviewing lecture and practicing Can pay attention to on-line demonstration –Demonstration of usage on-line Will show details of usage Shop proper and improper operation First -- Learn to use M ATLAB ® Help
26 - 3/20/2000AME 150L4 Basic Features Simple Mathematics –M ATLAB ® is like a calculator Type in expression and get answer ( ans= ) Suppress answer with trailing semi-colon ; Can define variables (like in Fortran) –M ATLAB ® operations Fortran-like +, -, * and functions Exponentiation is ^ (like Basic or Excel) 2 Divisions / and \ ( 56/8 same as 8\56 )
26 - 3/20/2000AME 150L5 Hierarchy of operations Similar to Fortran –Expression evaluated left to right –Exponentiation has highest precedence –Multiplication & Division next & equal –Addition & Subtraction next & equal Expressions in Parentheses evaluated first –Start with Innermost & proceed Outward
26 - 3/20/2000AME 150L6 Naming Variables Variable names are Case sensitive (!!!) Names can have up to 31 characters Names must start with a letter Names can contain letter, numerical digits, and underscore (no special characters or blanks) i and j are special (they are )
26 - 3/20/2000AME 150L7 Special Variables i or j - imaginary base ans - unnamed answer pi … eps - machine epsilon (1 + eps)>1 (smallest) inf - stands for infinity NaN or nan - not a number flops - number of floating point operations nargin - number of function input arguments nargout - number of function output arguments realmin - smallest usable positive real number realmax - largest usable positive real number
26 - 3/20/2000AME 150L8 Features of calculations Complex numbers are natural EDU» sqrt(-1) ans = i Pi is predefined in a variable EDU» atan(1)*4-pi ans = 0
26 - 3/20/2000AME 150L9 Cautions Special Variables Can Be Redefined! EDU» pi ans = EDU» pi=5 pi = 5 EDU» atan(1)*4-pi ans =
26 - 3/20/2000AME 150L10 More Features Clear - resets special values and any other defined variables Convenience often misleads EDU» -1*(1/3) EDU» -1^(1/4) ans = EDU» -1^(1/2) EDU» sqrt(sqrt(-1)) ans = i
26 - 3/20/2000AME 150L11 Comments & Punctuation Comments start with % Lines are continued by three periods... Comments cannot be continued (but can use % on next line to make “new” comment) Cannot continue in middle of a variable name
26 - 3/20/2000AME 150L12 Complex Numbers Complex numbers have a magnitude and angle (argument in mathematics) M M e i = a + b i where
26 - 3/20/2000AME 150L13 M ATLAB ® Complex Helpers Real, imag, abs, and angle c1 = EDU» mag_c1=abs(c1) i mag_c1 = EDU» c2=3*(2-sqrt(-1)*3) c2 = EDU» angle_c1=angle(c1) i angle_c1 = EDU» c3=6+sin(-5)*j c3 = EDU» imag_c1=imag(c1) i imag_c1 = 2
26 - 3/20/2000AME 150L14 M ATLAB ® Mathematical Functions
26 - 3/20/2000AME 150L15 M ATLAB ® Links Pointers to other texts User Contributed Software (“M-Files”) On-line Demos
26 - 3/20/2000AME 150L16 Command Window Command Window Workspace who - lists active variables whos - more detailed information clear - clears the workspace (erases all) clear list of variables - clears variables in list help - provides general help help command - provides help on command more on - pauses on full screen
26 - 3/20/2000AME 150L17 Number Display Format format short digits format long digits format short e 3.146e+00+ exponent format long e e+00 format short g better of shorts format long g format hex fb5442d18hexadecimal format rat 355/113rational approximation format bank decimal digits format compact suppresses extra line feeds
26 - 3/20/2000AME 150L18 Command Window Control clc Clear command window home cursor to upper left corner more on Pages the command window computer tells what computer you are running on version Short version information ver long version information quit Stop using Matlab
26 - 3/20/2000AME 150L19 Script M-files Can create scripts of commands Called “m-files” because extension is.m
26 - 3/20/2000AME 150L20 Special M-File Commands disp (variable)display results - no variable names echo control echoing of script commands input prompt user for input keyboard Give temporary control to keyboard pause pause until any key pressed pause n pause n seconds, then continue waitforbuttonpress
26 - 3/20/2000AME 150L21 M ATLAB ® Session Control A file called startup.m (in your search path) will execute every time you start M ATLAB ® Suggestions for a startup file –Keep a diary (copy) of day’s session (you can edit it to remove irrelevant material) –set more on
26 - 3/20/2000AME 150L22 Sample Startup file % This is the startup.m initialization file more on %pause on a full screen dfile=strcat(date,'.txt'); %make date string diary(dfile); %Create a diary file %named with today's date disp(strcat(‘Diary created:',datestr(now,0)))
26 - 3/20/2000AME 150L23 File & Directory Management Save, load & deleting variables save stores all variables in matlab.mat save liststores variables in list load loads all variables from matlab.mat load listloads just variables in list These commands are for initializing workspace
26 - 3/20/2000AME 150L24 File Management Details save (fname, ['var1','var2',…]) saves variables var1 and var2 into file stored in string fname delete ('data.mat') deletes named file Lots of low-level file I/O - we will not use in AME150
26 - 3/20/2000AME 150L25 Exist Command Details EXIST('A') returns: 0 if A does not exist 1 if A is a variable in the workspace 2 if A is a file [usually M-file] on MATLAB's search path 3 if A is a MEX-file on MATLAB's search path 4 if A is a MDL-file on MATLAB's search path 5 if A is a built-in MATLAB function 6 if A is a P-file on MATLAB's search path 7 if A is a directory
26 - 3/20/2000AME 150L26 Embedded OS Commands cd or pwd Show or change present working directory p=cd Return present working directory dir or ls Display files in current directory d=dir return current working directory p=matlabroot return dir path to Matlab type cow Type cow.m in Command window what Type organized listing of Matlab files
26 - 3/20/2000AME 150L27 M ATLAB ® Special Features Vectors and Arrays (and array operations) Plotting Linear Algebra Polynomials (and their roots) Solutions of Systems of Equations Problem Solving
26 - 3/20/2000AME 150L28 M ATLAB ® Arrays M ATLAB ® has many features to work with arrays of numbers (vectors & matrices) Definition: x=[ list of elements separated by, or blanks ] each element may be an arbitrary expression x = [0 0.1*pi,.2*pi … 0.9*pi pi] y=sin(x) produces an array result
26 - 3/20/2000AME 150L29 M ATLAB ® Arrays (2) Arrays have the following properties –1-D Arrays can be rows or columns (use ; to signal end of row) –2-D Arrays have rows and columns –M ATLAB ® can handle higher numbers of dimensions - extra dimensions are “pages”
26 - 3/20/2000AME 150L30 M ATLAB ® Arrays (3) An Array is referred to by its name (same as naming variables) An element of an array is indicated by an index (enclosed in parentheses) V = [ ] V(3) is 3 V(:3) is [1 2 3] V(2:) is [ ]
26 - 3/20/2000AME 150L31 The Colon “:” operator The Colon is used to create equi-spaced lists x=[1:4] is [ ] N1:N2 starts at N1 and increments by 1 to N2 x=[1:2:9] is [ ] N1:N2:N3 starts at N1, increments by N2 until reach N3 Angle=[180:-1:0] generates a list of 181 angles from 180 to 0 (in reverse order) Radians=pi/180*Angle (same but in radians)
26 - 3/20/2000AME 150L32 Scalars and Vectors Scalars can be added, subtracted, multiplied or divided into vectors (element by element) » x=[ ];y=3*x y = » z=x+7 z =
26 - 3/20/2000AME 150L33 The Dot “. “ Operator Some operators don’t make sense » x^2 ??? Error using ==> ^ Matrix must be square. » x.^2 ans =
26 - 3/20/2000AME 150L34 The Dot “. “ Operator (continued) The Dot before an operator signals that you want top perform the same operation on every element in an array x = y = » x.*y ans =