Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 170 – INTRO TO SCIENTIFIC AND ENGINEERING PROGRAMMING.

Similar presentations


Presentation on theme: "CS 170 – INTRO TO SCIENTIFIC AND ENGINEERING PROGRAMMING."— Presentation transcript:

1 CS 170 – INTRO TO SCIENTIFIC AND ENGINEERING PROGRAMMING

2 Matrices Matlab = Matrix + Laboratory What is the difference between array and matrix? Matrix: mathematical term, 2D only Array: CS term, data structure, can be more than 2D

3 Arrays A rectangular arrangement of numbers is called an array or matrix.

4 Vectors and Arrays 1-by-1 arrays: scalars 1-by-N arrays: row vectors N-by-1 arrays: column vectors Row and Column vectors are also sometimes just called vectors In Matlab, all arrays of numbers are called double arrays.

5 Creating Arrays Horizontal and Vertical Concatenation (ie., “stacking”) –Square brackets, [, and ] to define arrays –Spaces (and/or commas) to separate columns –Semi-colons to separate rows Example >> [ 3 4 5 ; 6 7 8 ] is the 2-by-3 array If A and B are arrays with the same number of rows, then >> C = [ A B ] is the array formed by stacking A “next to” B Once constructed, C does not “know” that it came from two arrays stacked next to one another. No partitioning information is maintained. If A and B are arrays with the same number of columns, then >> [ A ; B ] is the array formed by stacking A “on top of” B So, [ [ 3 ; 6 ] [ 4 5 ; 7 8 ] ] is equal to [ 3 4 5;6 7 8 ]

6 Creating special arrays ones(n,m) –a n-by-m double array, each entry is equal to 1 zeros(n,m) –a n-by-m double array, each entry is equal to 0 rand(n,m) –a n-by-m double array, each entry is a random number between 0 and 1. Examples >> A = ones(2,3); >> B = zeros(3,4); >> C = rand(2,5);

7 : convention The “: (colon) convention” is used to create row vectors, whose entries are evenly spaced. 7:2:18 equals the row vector [ 7 9 11 13 15 17 ] If F, J and L are numbers with J>0, F ≤ L, then F:J:L creates a row vector [ F F+J F+2*J F+3*J … F+N*J ] where F+N*J ≤ L, and F+(N+1)*J>L Many times, the increment is 1. Shorthand for F:1:L is F:L

8 F:J:L with J<0 (decrementing) You can also decrement (ie., J<0), in which case L should be less than F. Therefore 6.5:-1.5:0 is the row vector [ 6.5 5.0 3.5 2.0 0.5 ]

9 The SIZE command If A is an array, then size(A) is a 1-by-2 array. –The (1,1) entry is the number of rows of A –The (1,2) entry is the number of columns of A If A is an array, then size(A,1) is the number of rows of A size(A,2) is the number of columns of A Example >> A = rand(5,6); >> B = size(A) >> size(A,2)

10 Accessing single elements of a vector If A is a vector (ie, a row or column vector), then A(1) is its first element, A(2) is its second element,… Example >> A = [ 3 4.2 -7 10.1 0.4 -3.5 ]; >> A(3) >> Index = 5; >> A(Index) This syntax can be used to assign an entry of A. Recall assignment >> VariableName = Expression An entry of an array may also be assigned >> VariableName(Index) = Expression So, change the 4’th entry of A to the natural logarithm of 3. >> A(4) = log(3);

11 Accessing elements and parts of arrays If M is an array, then M(3,4) is –the element in the (3 rd row, 4 th column) of M If M is an array, then M([1 4 2],[5 6]) –is a 3-by-2 array, consisting of the entries of M from rows [1, 4 and 2] columns [5 and 6] In an assignment >> M(RIndex,CIndex) = Expression the right-hand side expression should be a scalar, or the same size as the array being referenced by M(RIndex,CIndex) Do some examples

12 Name = ‘A’ Size = [2 3]; Data = Workspace: Base Layout in memory The entries of a numeric array in Matlab are stored together in memory in a specific order. >> A = [ 3 4.2 8 ; -6.7 12 0.75 ]; represents the array Somewhere in memory, Matlab has 3 -6.7 4.2 12 8 0.75

13 RESHAPE RESHAPE changes the size, but not the values or order of the data in memory. >> A = [ 3 4.2 8 ; -6.7 12 0.75 ]; >> B = reshape(A,[3 2]); The result (in memory is) 3 -6.7 4.2 12 8 0.75 Name = ‘A’ Size = [2 3]; Data = Name = ‘B’ Size = [3 2]; Data = 3 -6.7 4.2 12 8 0.75 while B is the array So, A is the array

14 END Suppose A is an N-by-M array, and a reference of the form A(RIndex,CIndex) Any occurence of the word end in the RIndex is changed (automatically) to N Any occurence of the word end in the CIndex is changed (automatically) to M Example: >> M = rand(4,5); >> M(end,end) >> M([1 end],[end-2:end])

15 : as a row or column index Suppose A is an N-by-M array, and a reference of the form A(RIndex,CIndex) If RIndex is a single colon, :, then RIndex is changed (automatically) to 1:N (every row) If C Index is a single colon, :, then C Index is changed (automatically) to 1:M (every column) Example: >> M = rand(4,5); >> M(:,[1 3 5])

16 Matrix operations Add, Subtract, Multiply examples A+B A-B A*B Do they have to have the same dimensions? What about division? A./B

17 Unary Numeric Operations on double Arrays Unary operations involve one input argument. Examples are: –Negation, using the “minus” sign –Trig functions, sin, cos, tan, asin, acos, atan,… –General rounding functions, floor, ceil, fix, round –Exponential and logs, exp, log, log10, sqrt –Complex, abs, angle, real, imag Example: If A is an N1-by-N2-by-N3-by-… array, then B = sin(A); is an N1-by-N2-by-N3-by-… array. Every entry of B is the sin of the corresponding entry of A. The “for”-loop that cycles the calculation over all array entries is an example of the vectorized nature of many Matlab builtin functions

18 QUESTIONS??


Download ppt "CS 170 – INTRO TO SCIENTIFIC AND ENGINEERING PROGRAMMING."

Similar presentations


Ads by Google