Array Accessing and Strings ENGR 1181 MATLAB 3 Array Accessing In The Real World Recall from the previously class that seismic data is important in structural design for civil engineers. Accessing data from an array at a certain location in California allows engineers to design their structures according to vibrational data in a specific region. This allows the building to be designed to this standard but not overdesigned to more extreme data in other regions. Today's Learning Objectives After today’s class, students will be able to: • Demonstrate proper notation for accessing elements from previously assigned onedimensional arrays (e.g., single elements, list of elements) and two-dimensional arrays (e.g., those with rows and columns). • Explain that a string is a one dimensional array and can be used the same way as numeric arrays. What is Addressing? Each element in a vector has an address, also called an index MATLAB indexing starts at 1 (not at 0!) We can access/retrieve/extract the individual elements by referring to their addresses Useful for transforming data or doing calculations with only part of a vector Vector Addressing Example Define a vector with 9 elements: >> v = [ 12 15 18 21 24 27 30 33 36]; We can access the elements individually: >> v(4) ans = 21 Vector Addressing Example We can retrieve any element by indexing: We can assign individual vector elements to variables: >> v(7) ans = 30 >> B= v(7) B= 30 >> v(9) ans = 36 >> C=v(9) C= 36 Vector Addressing Examples We can add elements together. Recall: B = v(7), C = v(9) >> D= B + C D= 66 We can also add elements directly: >> v(4) + v(7) ans = 51 Changing Element Values We can change an element in a vector by directly assigning a new value to a specific address. Let’s change the 6th element of v to 90: v= [12 15 18 21 24 27 30 33 36] >> v(6) = 90; >> v v= 12 15 18 21 24 90 30 33 36 Addressing Column Vectors Addressing an element in a column vector works the same way as with a row vector: >> col = [25; 30; 35; 40; 45; 50] >> t = col(4) t= 40 Vector Functions MATLAB has many, many built-in functions we can use with vectors max() min() sum() length() …etc. Vector Functions length() gives us the number of elements in a vector >> fun = [4 6 8 10 12]; >> length(fun) ans = 5 Vector Functions Zeros() gives us a vector or matrix of zeros >> nothing = zeros (1 , 7) nothing = 0 0 0 0 0 0 0 Vector Functions ones() gives us a vector/matrix of all ones >> single = ones(1, 12) single = 1 1 1 1 1 1 1 1 1 1 1 1 Addressing a Range of Elements The colon operator allows us to access a range of elements in a vector This is useful if we want to extract or alter only a portion of an existing vector Example: Addressing a Range Define a vector: >> vec = [ 1 3 5 7 9 11 13 15 ]; Select elements 3 through 7 in 'vec': >> vec(3:7) vec = 5 7 9 11 13 Example: Addressing a Range We can access a range of elements in any vector and assign them to a new variable. Recall that vec = [ 1 3 5 7 9 11 13 15 ] >> t= vec(2:5) t= 3 5 7 9 Vector Modifications We can add elements to any existing vector. Recall that 'vec' has 8 elements: vec = [ 1 3 5 7 9 11 13 15 ] >> vec(9: 12)= [ 2 4 6 8] vec = 1 3 5 7 9 11 13 15 2 4 6 8 Vector Modifications We can create new vectors made up of elements from previously defined vectors: >> E = [ 3 6 9 12 ]; >> G = [ 2 4 8 5]; >> K = [ E(1:3) G(3:4)] K= 3 6 9 8 5 Matrix Addressing Matrix addressing works very similarly to vector addressing Individual elements are addressed by their row number and column number: (m, n) Matrix Addressing Example Let's define a matrix, then access some elements: >> data = [ 2 3 4 5 ; 1 6 8 9] data = 2 3 4 5 1 6 8 9 >> data (2,3) ans = 8 Matrix Addressing Example We can perform mathematical operation with matrix elements. Let's add two values from our matrix called 'data': data = 2 3 4 5 1 6 8 9 >> data_sum= data(1,2) + data(2,4) data_sum = 12 Colon Operator With Matrices A(: , 3) Elements in all rows of column 3 A(2, : ) Elements in all columns of row 2 A(: , 2:5) Elements in columns 2 to 5 in all rows A(2:4 , :) Elements in rows 2 to 4 in all columns A(1:3 , 2:4) Elements in rows 1 to 3 and in columns 2 to 4 Extracting Matrix Elements We can extract a portion of a matrix and assign it to a new variable new_matrix =matrix( r1 : r2, c1 : c2) • r1 is the starting row • r2 is the ending row • c1 is the starting column • c2 is the ending column Example: Extracting Elements >> A = [ 1 3 5 7 2468 3 6 9 12 4 8 12 16] A= 1 2 3 4 3 5 4 6 6 9 8 12 7 8 12 16 >> B = A(1:3, 2:4) B= 3 5 7 4 6 8 6 9 12 Example: Extracting Elements >> C = A(1:3 , : ) >> D = A( : , 2:4) C= 1 3 5 7 2 4 6 8 3 6 9 12 D= 3 4 6 8 5 6 9 12 7 8 12 16 Remember Important Takeaways An element in a defined vector can be accessed with v(x) - an element in a vector can be defined, or redefined with v(x)=z An element in a defined matrix can be accessed with v(x:y)- an element in a matrix can be defined, or redefined with v(x:y)=z Strings are lines of text and can be used instead of numerical values - they are defined inside single apostrophes, e.g. ‘Your text here.’ Preview of Next Class Array Operations • Scalar – vector operations • Vector – vector operations Dot operator, when to use it • Built-in vector functions Ex: max, min, mean etc. • Examples What’s Next? Review today’s Quiz #03 Open the in-class activity from the EEIC website and we will go through it together. Then, start working on MAT-03 homework. Before next class, you will read about array operations, this is an introduction of mathematical operations in MATLAB and basics of linear algebra.