AME 150 L MATLAB 26 3202000 AME 150
AME 150 L MATLAB® 26 - 3/20/2000 AME 150 L 1
® MATLAB vs. Fortran • MATLAB® Positives • Fortran Positives – Interactive mode – Wealth of 3 rd party “notebooks” – Matrix Oriented – Efficient I/O and Graphics • – – • Fortran Negatives MATLAB® Negatives – Syntax cumbersome – Command Line oriented 26 - 3/20/2000 First Compiler Legacy Codes Efficient Numerically Portability AME 150 L – Debugging Hard – Cumbersome – Object Orientation pasted -on 2
® MATLAB 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 improperation • First -- Learn to use MATLAB® Help 26 - 3/20/2000 AME 150 L 3
Basic Features • Simple Mathematics – MATLAB® is like a calculator • Type in expression and get answer (ans=) • Suppress answer with trailing semi-colon ; • Can define variables (like in Fortran) – MATLAB® operations • Fortran-like +, -, * and functions • Exponentiation is ^ (like Basic or Excel) • 2 Divisions / and ( 56/8 same as 856 ) 26 - 3/20/2000 AME 150 L 4
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/2000 AME 150 L 5
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/2000 AME 150 L 6
Special Variables flops - number of floating i or j - imaginary base ans - unnamed answer pi - 3. 1416… eps - machine epsilon point operations nargin - number of function input arguments (1 + eps)>1 (smallest) nargout - number of function output arguments realmin - smallest usable positive real number inf - stands for infinity Na. N or nan - not a number realmax - largest usable positive real number 26 - 3/20/2000 AME 150 L 7
Features of calculations • Complex numbers are natural EDU» sqrt(-1) ans = 0+ 1. 0000 i • Pi is predefined in a variable EDU» atan(1)*4 -pi ans = 0 26 - 3/20/2000 AME 150 L 8
Cautions • Special Variables Can Be Redefined! EDU» pi ans = 3. 1416 EDU» pi=5 pi = 5 EDU» atan(1)*4 -pi ans = -1. 8584 26 - 3/20/2000 AME 150 L 9
More Features • Clear - resets special values and any other defined variables • Convenience often misleads EDU» -1*(1/3) ans = -0. 3333 EDU» -1^(1/2) ans = -1 26 - 3/20/2000 EDU» -1^(1/4) ans = -1 EDU» sqrt(-1)) ans = 0. 7071+ 0. 7071 i AME 150 L 10
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/2000 AME 150 L 11
Complex Numbers • Complex numbers have a magnitude and angle (argument in mathematics) M M e i = a + b i where 26 - 3/20/2000 AME 150 L 12
® MATLAB Complex Helpers • Real, imag, abs, and angle c 1 = 1. 0000+ 2. 0000 i EDU» c 2=3*(2 -sqrt(-1)*3) c 2 = 6. 0000 - 9. 0000 i EDU» c 3=6+sin(-5)*j c 3 = 6. 0000+ 0. 9589 i 26 - 3/20/2000 EDU» mag_c 1=abs(c 1) mag_c 1 = 2. 2361 EDU» angle_c 1=angle(c 1) angle_c 1 = 1. 1071 EDU» imag_c 1=imag(c 1) imag_c 1 = 2 AME 150 L 13
® MATLAB Mathematical 26 - 3/20/2000 AME 150 L Functions 14
® MATLAB Links • Pointers to other texts http: //www. mathworks. com/support/books/index. php 3 • User Contributed Software (“M-Files”) http: //www. mathworks. com/support/ftp/ • On-line Demos http: //www. mathworks. com/products/demos/ 26 - 3/20/2000 AME 150 L 15
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 command - provides help on command more on - pauses on full screen 26 - 3/20/2000 AME 150 L 16
Number Display Format format format format 26 - 3/20/2000 short long short e long e short g long g hex rat bank compact 3. 1416 5 digits 3. 14159265358979 15 digits 3. 146 e+00 + exponent 3. 14159265358979 e+00 3. 1416 better of shorts 3. 14159265358979 400921 fb 5442 d 18 hexadecimal 355/113 rational approximation 3. 14 2 decimal digits suppresses extra line feeds AME 150 L 17
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/2000 AME 150 L 18
Script M-files • Can create scripts of commands • Called “m-files” because extension is. m 26 - 3/20/2000 AME 150 L 19
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 until any key pressed pause n seconds, then continue waitforbuttonpress 26 - 3/20/2000 AME 150 L 20
® MATLAB Session Control • A file called startup. m (in your search path) will execute every time you start MATLAB® • 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/2000 AME 150 L 21
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/2000 AME 150 L 22
File & Directory Management • Save, load & deleting variables save stores all variables in matlab. mat save list stores variables in list loads all variables from matlab. mat load list loads just variables in list These commands are for initializing workspace 26 - 3/20/2000 AME 150 L 23
File Management Details save(fname , ['var 1', 'var 2', …]) saves variables var 1 and var 2 into file stored in string fname delete('data. mat') deletes named file Lots of low-level file I/O - we will not use in AME 150 26 - 3/20/2000 AME 150 L 24
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/2000 AME 150 L 25
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 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 d=dir 26 - 3/20/2000 AME 150 L 26
® MATLAB • • • 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/2000 AME 150 L 27
® MATLAB Arrays • MATLAB® 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/2000 AME 150 L 28
® MATLAB 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 – MATLAB® can handle higher numbers of dimensions - extra dimensions are “pages” 26 - 3/20/2000 AME 150 L 29
® MATLAB 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 = [1 2 3 4 5] V(3) is 3 V(: 3) is [1 2 3] V(2: ) is [2 3 4 5] 26 - 3/20/2000 AME 150 L 30
The Colon “: ” operator • The Colon is used to create equi-spaced lists x=[1: 4] is [1 2 3 4] N 1: N 2 starts at N 1 and increments by 1 to N 2 x=[1: 2: 9] is [1 3 5 7 9] N 1: N 2: N 3 starts at N 1, increments by N 2 until reach N 3 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/2000 AME 150 L 31
Scalars and Vectors • Scalars can be added, subtracted, multiplied or divided into vectors (element by element) » x=[1 3 5 7 9]; y=3*x y = 3 9 15 21 » z=x+7 z = 8 10 12 14 16 26 - 3/20/2000 AME 150 L 27 32
The Dot “. “ Operator • Some operators don’t make sense » x^2 ? ? ? Error using ==> ^ Matrix must be square. » x. ^2 ans = 1 26 - 3/20/2000 9 25 AME 150 L 49 81 33
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 = 1 y = 3 » x. *y ans = 3 26 - 3/20/2000 3 9 27 5 15 75 AME 150 L 7 21 147 9 27 243 34
- Slides: 34