1 / 23

CPET 190

CPET 190. Lecture 5 Problem Solving with MATLAB http://www.etcs.ipfw.edu/~lin. Lecture 5: More On MATLAB Arrays. 5.1 More MATLAB Functions 5.2 Array Operators 5.3 Array Arithmetic Operations 5.4 Sub-arrays. 5.1 More MATLAB Functions. size(this_array)

calum
Download Presentation

CPET 190

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPET 190 Lecture 5 Problem Solving with MATLAB http://www.etcs.ipfw.edu/~lin Lecture 5 - By Paul Lin

  2. Lecture 5: More On MATLAB Arrays 5.1 More MATLAB Functions 5.2 Array Operators 5.3 Array Arithmetic Operations 5.4 Sub-arrays Lecture 5 - By Paul Lin

  3. 5.1 More MATLAB Functions size(this_array) • returns the two values specifying the number of rows and columns in this_array length(this_array) • returns the length of a vector, or the longest dimension of a 2-D array zeros(n) • built-in MATLAB function for creating an n-by-n array with all elements are initialized to zero zeros(n, m) • for creating an n-by-m all-zero array Lecture 5 - By Paul Lin

  4. 5.1 More MATLAB Functions(continue) ones(n) • built-in MATLAB function for creating an n-by-n array with all elements are initialized to one ones(n, m) • for creating an n-by-m all-one array eye(n) • for creating an n-by-n identity matrix in which all elements in the main diagonal are ones eye(n, m) • for creating an n-by-m identity matrix Lecture 5 - By Paul Lin

  5. 5.1 More MATLAB Functions(continue) >> help rand RAND Uniformly distributed random numbers. RAND(N) is an N-by-N matrix with random entries, chosen from a uniform distribution on the interval (0.0,1.0). RAND(M,N) and RAND([M,N]) are M-by-N matrices with random entries. RAND(M,N,P,...) or RAND([M,N,P,...]) generate random arrays. RAND with no arguments is a scalar whose value changes each time it is referenced. RAND(SIZE(A)) is the same size as A. Lecture 5 - By Paul Lin

  6. 5.1 More MATLAB Functions(continue) >> help fix FIX Round towards zero. FIX(X) rounds the elements of X to the nearest integers towards zero. See also FLOOR, ROUND, CEIL. Lecture 5 - By Paul Lin

  7. 5.1 More MATLAB Functions(continue) A1 = 1 1 1 1 1 1 1 1 1 B1 = 1 1 1 1 1 1 A_eye = 1 0 0 0 1 0 0 0 1 Example 5.1: Creating arrays using array functions n = 3; m = 2; % an 3 x 3 all-zero array A0 = zeros(3) % an 3 x 2 all zero array B0 = zeros(3, 2) % an 3 x 3 all-one array A1 = ones(3) % an 3 x 2 all-zero array B1 = ones(3,2) %An identify array A_eye = eye(n) A0 = 0 0 0 0 0 0 0 0 0 B0 = 0 0 0 0 0 0 Lecture 5 - By Paul Lin

  8. 5.2 Array Operators Transpose operator ( ' ) • swap the rows and columns of an array Colon operator (: ) • one of the most useful operator in MATLAB. We can use it to create regularly spaced vectors, subscript matrices, and specify for iterations Lecture 5 - By Paul Lin

  9. 5.2 Array Operators array_r1 = 0.2722 0.1988 0.0153 0.7468 array_r2 = 0.4451 0.9318 0.4660 0.4186 array_c1 = 0.2722 0.1988 0.0153 0.7468 array_c2 = 0.4451 0.9318 0.4660 0.4186 Example 5.2: Vector Transpose Example • rand() – random number generation function >> % Generate an array using rand() function array_r1 = rand(1, 4) array_r2 = rand(1, 4) % Convert row vector to column vector array_c1 = array_r1' array_c2 = array_r2' Lecture 5 - By Paul Lin

  10. 5.2 Array Operators (continue) Example 5.3: Using rand(), fix() functions and array transpose operator >> A = rand(1,4) *10 A = 0.5789 3.5287 8.1317 0.0986 >> A = fix(A) A = 0 3 8 0 >> B = fix(rand(1,4)*10) B = 1 2 1 6 >> C = [A' B'] C = 0 1 3 2 8 1 0 6 Lecture 5 - By Paul Lin

  11. 5.2 Array Operators(continue) R_1 = 0 1 R_2 = 3 2 R_3 = 8 1 R_4 = 0 6 C_1 = 0 3 8 0 C_2 = 1 2 1 6 • Example 5.4: Using colon operator to pick-up selected rows or columns • A(: , j) – extracts j-th column of A • A(i, :) – extracts the i-th row of A C = 0 1 3 2 8 1 0 6 C_1 = C(:,1) C_2 = C(:, 2) R_1 = C(1,:) R_2 = C(2, :) R_3 = C(3, :) R_4 = C(4, :) Lecture 5 - By Paul Lin

  12. 5.2 Array Operators(continue) • Example 5.5: This problem solving example uses the colon operator with integers to generate a regularly spaced temperature vector from 0 to 100 in degree C.We will also print all data to show that C to F Temperature Conversion holding a linear relationship. • Analysis (identified equations and MATLAB equations, and using plot function to show the linear relationship) F = 9/5 C + 32 C = 0:10:100; F = 9/5 * C + 32; plot(C, F) Lecture 5 - By Paul Lin

  13. 5.2 Array Operators (continue) • Example 5.5: Solution % CtoF_plot.m % Author: M. Lin % Date: 9/6/04 % Description: C = 0:10:100; F = (9/5)* C + 32; plot(C, F), grid on xlabel('Degree C'), ylabel('Degree F') title(' C vs F') Lecture 5 - By Paul Lin

  14. 5.2 Array Operators(continue) % sine60hz_2d.m % Author: M. Lin % Date: 9/6/04 % Description: f = 60; T = 1/f; Vm = 10; dt = 0.001*T; t = 0:dt: 5*T; e = Vm*sin(2*pi*f*t); sine60 = [t' e']; save sine60.mat sine60 clear load sine60.mat plot(sine60(:,1), sine60(:,2)) • Example 5.6: Reconstruct the sine 60Hz signal and its time vector as a 2-D array and save it as sine60hz.mat file. Verify result by reloading the program and plot the sine wave using colon operator. • Solution: f = 60 Hz, T = 1/f Vm = 10 volts, dt = 0.001*T, t = 0:dt: 5*T e = Vm*sin(2*pi*f*t) Lecture 5 - By Paul Lin

  15. 5.2 Array Operators (continue) • Example 5.6: MATLAB Solution Lecture 5 - By Paul Lin

  16. 5.3 Array Arithmetic Operations + Addition • A + B adds A and B arrays of the same dimension, unless one is a scalar. A scalar can be added to a matrix of any dimension. • An Example: both A and B are 2-by-2 array, A + B is | (a11 + b11) (a12 + b12) | | (a21 + b21) (a22 + b22) | Lecture 5 - By Paul Lin

  17. 5.3 Array Arithmetic Operations(continue) - Subtraction. • A - B subtracts B from A. A and B arrays must have the same dimension, unless one is a scalar. A scalar can be subtracted from a matrix of any dimension. • An Example: both A and B are 2-by-2 array, A - B is | (a11 - b11) (a12 - b12) | | (a21 - b21) (a22 - b22) | Lecture 5 - By Paul Lin

  18. 5.3 Array Arithmetic Operations (continue) .* Array Multiplication • A .* B is the element-by-element product of the arrays A and B. A and B must have the same dimension, unless one is a scalar. A scalar can be multiplied to a matrix of any dimension. • An Example: both A and B are 2-by-2 array, A .* B is | (a11 * b11) (a12 * b12) | | (a21 * b21) (a22 * b22) | Lecture 5 - By Paul Lin

  19. 5.3 Array Arithmetic Operations (continue) ./ Array Right Division • A ./B is the element-by-element division of the arrays A and B. A and B must have the same dimension, unless one is a scalar. A scalar can be divided by a matrix of any dimension. • An Example: both A and B are 2-by-2 array, A ./ B is | (a11 / b11) (a12 / b12) | | (a21 / b21) (a22 / b22) | Lecture 5 - By Paul Lin

  20. 5.3 Array Arithmetic Operations (continue) >> A = fix(rand(2)*10) B = fix(rand(2)*10) W = A - B X = A + B Y = A .* B Z = A./ B A = 9 6 2 4 B = 8 4 7 0 Example 5.7: Element-by-element array arithmetic operations A = fix(rand(2)*10) B = fix(rand(2)*10) W = A - B X = A + B Y = A .* B Z = A./ B Lecture 5 - By Paul Lin

  21. 5.3 Array Arithmetic Operations (continue) Example 5.7: continue W = A - B X = A + B Y = A .* B Z = A./ B A = 9 6 2 4 B = 8 4 7 0 >> A - B W = 1 2 -5 4 >> A + B X = 17 10 9 4 >> A .* B Y = 72 24 14 0 >> A./B Warning: Divide by zero. (Type "warning off MATLAB: divideByZero" to suppress this warning.) Z = 1.1250 1.5000 0.2857 Inf Lecture 5 - By Paul Lin

  22. 5.4 SubArrays Subarrays can be formed by using colon (: ) operator to select a portion of an array Example 5.9: Subarray Examples array4 = [10 20 30; -20 -30 -40; 30 40 50] array5 = array4(1, : ) % [10 20 30] array6 = array4(: ,1: 2: 3) % [first column third column] array6 = 10 30 -20 -40 30 50 array1 = [1 2 3 4 5]; array7 = array1(3: end) array 7 = 3 4 5 array1(end) ans = 5 Lecture 5 - By Paul Lin

  23. Summary 5.1 More MATLAB Functions 5.2 Array Operators 5.3 Array Arithmetic Operations 5.4 Subarrays Lecture 5 - By Paul Lin

More Related