1 / 29

Array types:

Array types:. numeric character logical cell structure function handle Java. MAT rix LAB oratory. The name says it all: Matlab is designed for work with matrices A matrix is an arrangement of numbers in a rectangular pattern An m by n matrix has m rows n columns

Download Presentation

Array types:

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. Array types: numeric character logical cell structure function handle Java

  2. MATrixLABoratory • The name says it all: Matlab is designed for work with matrices • A matrix is an arrangement of numbers in a rectangular pattern • An m by n matrix has • m rows • n columns • mn elements of (floating point) numbers

  3. Example: Magic square

  4. A = magic(4) • Each row adds to 34 • Each colum adds to 34 • Each diagonal adds to 34 • A(1,1) element in upper left corner • A(i,j) element in i-th row and j-th column • Note: Numbering starts with 1 (and not with 0, as some other programming languages do) • Starting with 1 is used frequently in mathematics • Starting with 0 is more natural for implementation in a computer

  5. Referencing elements of an array

  6. Creating matrices • B=[16,2,3,13;5,11,10,8;9,7,6,12;4,14,15,1] • Values are given as integers, but stored as floating point numbers • Elements of a row are separated by a space or a comma • Rows are separated by semicolon • Number of elements have to be the same in each row

  7. Special Matrices • Row vector (1 by n matrix) • a = [ 1 , 2 , 3 , 4 ] • Column vector (m by 1 matrix) • b = [ 1 ; 2 ; 3 ; 4 ] • Transpose of a matrix - Interchange rows with columns • c = a' • c is now the same as b

  8. Matrix A and its transpose A'

  9. Referencing elements of an array (matrix) • A= magic(4) 4 by 4 matrix • A(2,3) specific element in row 2 • A(2, 2:4) row vector from row 2 of A with elements 2 to 4 • A(1:3,3) column vector from column 3 of A with elements 1 to 3 • A(1:2:3,4) column vector from column 4 of A with elements 1 and 3 • A(:,3) entire column 3 of A • A(1:2, 2:3) submatrix of A

  10. Indexing • via a specific value • range of values created via • start:inc:stop • default for inc is 1 • if value for stop is not known can use keyword 'end' instead, which will refer to largest value for that index • : refers to all defined values for that index

  11. Array operations • Matlab allows use of index notation on the right and also on the left hand side of an assignment statement • Most other programming languages are much more restrictive • in C++ A[2][3] references an element • but A[2] gives the address of row 2, which can not be changed • Since Matlab extends arrays automatically need to watch out for referencing undefined elements: • A=magic(4) ; A(2,3:5)=[21,47,45] • is ok in Matlab

  12. Functions operating on vectors • v vector (row or column) • max(v) returns largest element in v • min(v) returns smallest element in v • find(v) returns indices of nonzero elements in v • sort(v) returns vector sorted in ascending order • sum(v) returns sum of the elements in v • length(v) • size(v) gives dimensions of the array v, i.e. • 1 length(v) for a row vector • or • length(v) 1 for a column vector

  13. Representation of arrays in Matlab • A = [2, 6, 9; 4, 2, 8; 3, 5, 1] • A = • 2 6 9 • 4 2 8 • 3 5 1 • is actually stored in memory as the sequence • 2, 4, 3, 6, 2, 5, 9, 8, 1 • that is in column major form, as done by Fortran • Most other programming languages use row major form, i.e. order in which elements are entered

  14. Functions applied to matrices • A m , n matrix • max(A), min(A), sort(A), sum(A) return row vectors with operation performed on each column • find(v) returns linear indices of nonzero elements in A • linear index of element A(i,j) is (j-1)m + i • [u,v,w] = find(A) gives a more useful result • u vector for row indices • v vector for column indices • w vector with non-zero elements • length(A) returns maximum of m and n • size(A) returns dimension of A, that is m n

  15. Other methods for creating a vector (one dimensional array) • x = [ -10 : 3 : 10 ] • same as x = [-10 , -7, -4, -1, 2, 5, 8 ] • y = [ 10 : -3 : -10] • same as y =[ 10, 7, 4, 1, -2, -5, -8] • z = [ 0 : 10 ] • default increment is 1 • linspace( x1, x2, n ) • n number of points (values) between x1 and x2 inclusive endpoints x1 and x2 • xx = linspace( 5, 8, 10 ) • same as xx = [5 : 0.3333333333333333 : 10] • logspace( a, b, n) • n number of points between 10a and 10b includes endpoints • xlog = logspace( 1, 2, 10 )

  16. logspaceprogram that does the same a = 1 b = 2 n = 10 inc = 10^((b – a ) / n ) myxlog(1) = 10^a for k = 2 : n myxlog(k) = myxlog(k-1) * inc end

  17. Remarks • If the program is converted to a script do not call it logspace.m • otherwise original command is no longer available. • removing file logspace.m from directory causes also problems since Matlab maintains history of functions used • information kept in tool_path_cache • clear myxlog • should be at the beginning of the script • old values from a previous use of mylogspace will still be visible

  18. Remarks • Scalars are arrays of length 1 • k = 1 • k(1) is defined but not k(2) • Arrays (vectors and matrices) can be extended by assigning an array element outside the current bounds • any missing elements will be set to 0 • k(4) = 23 • the array k has now elements [1, 0, 0, 23]

  19. Remarks • A = [1,2,3 ; 4,5,6] • A(1,5) = 23 • gives new 3 by 5 matrix • 1 2 3 0 23 • 4 5 6 0 0 • Most programming languages do not allow the extension of an existing array. For these languages • Size of the array has to declared at the beginning • Exceeding the bounds of an array causes a run time error (not a compile time error) • Some programming languages i.e. Java will detect this type of error and terminate the run with an error message • Other programming languages i.e. C and C++ will overwrite an adjacent storage location with unpredictable results

  20. Multi dimensional arrays • A(3,2,4) element of a three dimensional array • Note how Matlab fills in missing elements and display new array • Information about workspace variables is updated automatically • Creating multi dimensional arrays • by assigning individual elements • or with notation cat(n, A, B, C,…) • where A, B, C,…all are arrays of the same size • n the dimension where the matrices are catenated • example cat(1,A,B) cat(2,A,B) cat(3,A,B)

  21. Use of vectors in geometry • Common operations • vector addition: u+v • vector subtraction: u-v • multiplication with a scalar r: ru • length of a vector |u| • dot product: uv =|u| |v| cos() • with  angle between u and v • dot product multiplies elements of u and v pairwise and adds them together • uu = |u|2

  22. Use of matrices in geometry • defines linear transformation y = A x • x column vector of length n • y column vector of length m • A matrix of size m by n • for the multiplication A  x take each row of A and form the dot product with x • Note the requirement that the number of elements in a row of A has to be the same as the number of elements in the column of x

  23. Operations on arrays in Matlab • Matlab provides many different operations for arrays (vectors, matrices, multi dimensional arrays) • Some of the operations have a geometric interpretation, others do not • If there are certain requirements for performing on operation it comes from conforming to the geometric interpretation of the operation • See course on 'Matrix Methods'

  24. Element by element operations for arrays of the same size • Scalar b added to array A: A + b • Scalar b subtracted from array A: A – b • Addition of two arrays: A + B • Subtraction of two arrays: A – B • Multiplication of two arrays: A . B • Right division of two arrays: A ./ B • Left division of two arrays: A .\ B • Array exponentiation: A .^ B

  25. Remarks • The last 4 operations have no geometric interpretation • The first two operations are mathematically incorrect, b should be vector with all of its elements set to b • Matlab allows standard functions to operate on each element of an array and produces an array of the same size • For example sqrt(A) or cos(A), again the resulting matrices do not conform to the mathematical definition of sqrt(A) or cos(A)

  26. Array operations in Matlab • Geometric interpretation not needed, when evaluating functions at many points • t=[ 0 : 0.003 : 0.5 ] ; • array t(1)=0 to t(167)=0.498 • y = exp(-8 * t ) .* sin(9.7 * t +pi/2) ; • exp(-8*t) evaluates to an array of length 167 • sin(9.7*t+pi/2) evaluates to an array • in order to multiply individual terms of the two arrays need to use .*

  27. General Comments for Plotting • Use … in order to continue a statement on next line • Number of points for plotting should be enough to give a smooth graph • but not so many so that it would take too long to evaluate functions and exceed available memory • labels for each axis should give dimension

  28. Current and power dissipation in resistors • current: I • volt: V • resistance: R • Ohm's law I = V/R • Power dissipation Watts: I*V=I2/R • in Matlab given arrays for V and R • need to use .^ and ./ • watts = V.^2./R • In order to make statement clearer use parentheses • watts = (V.^2) ./ R

  29. Solving equations by graphical means • Given L = 70 find approximate value for x • [x,y]=ginput(n) • graphical input from mouse and cursor • option to plot, allows fixing of n coordinate lines with the click of the mouse

More Related