Chapters 4-3-5 MATLAB Basics Matrices Built-In Functions Plotting Arrays Vector Matrix Array Fundamentals Create: A=[2, 4, 10; 16, 3, 7]; ones(n) > nxn matrix eye(n) > nxn Address: A(2,3) A(:,3) A(2,:) a(2:5) A(:) Edit: A(2,3)=6; Initializing Variables/Arrays 1. Assignment statement A=[1 2 3 4]; A=[1,2; 3,4]; 2. Keyboard (Colon Operator) v=first:incr:last; Transpose >> v=[1:4]’ input function>>V=input(‘data’); 3. Read data file: load command (MAT-file) Data File Commands load > loads data from a file into the current workspace. Form: load filename save > saves data from current workspace into a file Form: save filename var1 var2 var3 Data shared with other programs use –ascii option: eg. save arr.dat arr –ascii produces arr.dat file Initializing Variables Functions zeros(n) > n x n matrix of zeros zeros(n,m) > n x m matrix of zeros ones(n) > n x n matrix of ones ones(n,m) > n x m matrix of ones size(arr) > returns number of rows & columns in arr eye(n) > n x n identity matrix eye(n,m) > n x m identity matrix length(arr) > returns the length of a vector or longest dimension MATLAB Initializing Example For vector v, create 6 elements in decreasing value of 2 where the first element is 10 and the last is 0. [10, 8, 6, 4, 2, 0] >> Appending Example B=[A r] >> appends vector r to matrix A increases columns B=[A;r] >> appends vector r to matrix A increases rows MATLAB Initializing Example Append vector a to vector b to create vector c. Append vector a to vector b to create matrix D. a elements = 1 3 5 b elements = 7 9 11 MATLAB Initializing Example Assume the following matrix X is stored in the current workspace: 2 4 8 6 X= 1 7 3 4 3 5 6 9 1 2 4 5 Create a new matrix Y from X which will produce the following matrix: Y= 1 7 3 3 5 6 Array (element-by-element) Operations Symbol Operation + .* ./ + .* ./ .\ .^ Form Scalar-array addition A+b Scalar-array subtraction A – b Scalar-array multiplication A.*b Scalar-array right division A./b Array addition A+B Array subtraction A–B Array multiplication A.*B Array right division A./B Array left division A.\B Array Exponentiation A.^B Example [6,3]+2=[8,5] [8,3]-5=[3,-2] [3,5].*2=[6,10] [4,8]./4=[4/4,8/4] [6,5]+[4,8]=[10,13] [6,5] – [4,8]=[2,-3] [3,5].*[4,8]=[12,40] [2,5]./[4,8]=[2/4,5/8] [2,5].\[4,8]=[2\4,5\8] [3,5].^2=[9,25] 2.^[3,5]=[8,32] [3,5].^[2,4]=[9,625] Array Operation Example The following table gives data for the distance traveled along (5) truck routes and the corresponding time required to traverse each route. Use the data to compute the average speed required to drive each route. Find the route that has the highest average speed. (Hint: [x,k]=max(a) returns the largest element in a to x & the row index for that value to k.) Route >> 1 2 3 4 5 Distance>> 560 440 490 530 370 Time(hrs)>> 10.3 8.2 9.1 10.1 7.5 Array Operation Example The current i passing through an electrical resistor having a voltage v across it is given by i=v/r, where r is the resistance. The power dissipated in the resistor is given by v2/r. The following table gives data for the resistance and voltage for (5) resistors. Use the data to compute the current in each resistor and the power dissipated. 1 2 3 4 5 r(ohms) 104 2x104 3.5x104 105 2x105 v(volts) 120 80 110 200 350 Matrix Operation C = A x B (n x n) n ci,j = ai,k bk,j k=1 Matrix Operations Symbol Operation + * / + * Form Example Scalar-matrix addition A + b [6,3]+2=[8,5] Scalar-matrix subtraction A – b [8,3]-5=[3,-2] Scalar-matrix multiplication A*b [3,5]*2=[6,10] Scalar-matrix right division A/b [4,8]/4=[4/4,8/4] Matrix addition A+B [6,5] + [4,8]=[10,13] Matrix subtraction A–B [6,5] – [4,8]=[2,-3] Matrix multiplication A*B [1,2;3,4]*[1,3;1,1]=[3,5;7,13] / Matrix right division A/B A * inv(B) [1,2;3,4]*[1,3;1,1]=[.5,.5;.5,2.5] \ Matrix left division A\B inv(A) * B [1,2;3,4]*[1,3;1,1]=[-1,-5;1,4] Product Cost Analysis Example The following 2 tables show the costs & production volume for 4 quarters associated with 4 products. Find the (1) total quarterly costs & the (2) total costs for the year for each of the following categories: materials, labor, & transportation. (Use 4 lines of code) Unit costs ($x103) Product Mat Labor Trans (1) 6 2 1 (2) 2 5 4 (3) 4 3 2 (4) 9 7 3 Qtr. Production Volume Q1 Q2 Q3 Q4 10 12 13 15 8 7 6 4 12 10 13 9 6 4 11 5 Hierarchy of Arithmetic Operations 1. Parentheses (innermost to outward) 2. Exponentials (L to R) 3. Multiplication/Division (L to R) 4. Addition/Subtraction (L to R) Predefined Special Operators pi i, j i(-1) eg. 2i = 2 -1 Inf Infinity NaN Not-a-Number clock Vector [y,m,d,hour,min,sec] date Current date eg. 13-Feb-2004 ans Stores the result of an expression Mathematical Functions abs(x) absolute value cos(x) cosine (rad) sin(x) sine (rad) tan(x) tangent (rad) acos(x) arc cosine (rad) asin (x) arc sine (rad) atan(x) arc tangent (rad) angle(x) Phase angle (rad) exp(x) ex log(x) Natural Log (ln x) log10(x) Base 10 Log sqrt(x) Square Root mod(x,y) Remainder of x/y Rounding Functions round(x) Rounds to nearest integer ceil(x) Rounds up to nearest integer floor(x) Rounds down to nearest int. fix(x) Rounds to nearest int. towards 0 Relational Operators < Less than <= Less than or equal to > Greater than >= Greater than or equal to == Equal to ~= Not equal to Polynomial Functions roots(x) Roots of a polynomial (column array form) poly(x) Coefficients of the polynomial whose roots are specified by the array x. polyval(a,x) Evaluates a polynomial at specified values of its independent variable x. Conv(a,b) Computes the product of two polynomials described by the coefficient arrays a and b. Characters in fprintf Display Function %d Integer format %e Exponential format %f Floating point format %g Floating point or exponential, whichever is shorter \n Skip to a new line Format Command format short > 4 digits after decimal format long > 14 digits after decimal format short e > 5 digits plus exponent format long e > 16 digits plus exponent format bank > Two decimal digits format rat > approximate ratio x-y plotting plot(x,y) > plots any pair of vectors x & y versus each other > both vectors must have the same length > single curve > auto-scale spacing for each axis x-y plotting with fplot fplot(y,[xmin xmax]) > x must be used for the independent variable. > automatically analyzes the function & sets the plotting points so all features of the function are shown. > y must be a string describing the function. Multiple x-y plots plot(x,y,u,v) > plots 4-arrays: y versus x & v versus u Plotting Polynomials plot(x,polyval(a,x)) > plots the polynomial at specified values of the independent variable. Logarithmic Scale Plotting plot(x,y) > Both x&y on linear axes semilogx(x,y) > x on logarithmic axes semilogy(x,y) > y on logarithmic axes loglog(x,y) > Both x&y on log axes Specialized Plot Commands bar(x,y) > Bar Chart polar(theta,r) > Polar plot stairs(x,y) > Stairs plot stem(x,y) > Stem plot Subplots subplot(m,n,p) > displays several plots in the same window figure > m = number of rows > n = number of columns > p = pane position for next plot Three Dimensional Line Plots plot3(x,y,z) > plots function of two independent variables x & y Label, Title, & Legend Commands for Plotting >>xlabel(‘string’) >>ylabel(‘string’) >>title(‘string’) >>legend(‘str1’,’str2’,…,0) >>grid on Colors, Marker Styles, & Line Styles >>plot(x,y,’attributestring’) Up to 3 components allowed: >> Line Color >> Marker Style >> Line Style Color Markers Lines r (red) . (point) - (solid) b (blue) o (circle) : (dotted) g (green) * (star) -- (dashed) Plot Commands gtext(‘string’) > Place the string at a point specified by the mouse hold on > Freezes the current plot for subsequent graphics command Stream (Text) Modifiers for Plotting \bf > Boldface \it > Italics \fontname{fontname} \fontsize{fontsize} _{xxx} > Subscripts ^{xxx} > Superscripts \Gamma > \lamda > \rm > Restore normal font