>> x = [ ]; y = 2*x y = Arrays x and y are one dimensional arrays called vectors. In MATLAB all variables are arrays. They allow functions with many values to be described.
EGR 106 – Week 2 – Arrays Definition, size, and terminology Construction methods Addressing and sub-arrays Some useful functions for arrays Character arrays Arrays chapter 2, pages Scripts chapter 4, pages
Recall from Last Week Variables: placeholders for numerical data – equal sign is an assignment operator c = 7.5 c = c + 1 – naming restrictions (not pi, etc. ) – can be complex valued ( x = 3 + i 7 ) Basic math on numbers and variables: Precedence ( ) ^ * / + -
Names for special sizes – scalar: 1 x 1 array 4 or [4] – row vector: 1 x C array [ ] is a 1 x 5 row vector – column vector: R x 1 array is a 3 x 1 column vector
Uniformly Spaced Vectors Colon operator first : increment : maximum yields a row vector of equally spaced values – examples: 0 : 2 : 10 [ ] 1 : 5 [ ] 7 : -2 : -3 [ ] 1 : 2 : 8 [ ] – default for increment is 1 Note – does not hit 8!!
Arrays Fundamental data unit in Matlab – all variables are stored as arrays Data values organized into rows and columns – numeric or alphanumeric entries
Array Construction Direct specification: – Name followed by an equal sign ( = ), just like variables – List values within a pair of brackets ( [ ] ) – Enter data one row at a time left to right, top to bottom order space or comma between the values rows separated by semicolons or the enter key
Size or dimension of an array: – number of rows and columns – written as R by C or R x C where R = number of rows C = number of columns e.g. yield is 3 by 4 test is 1 by 5
Building Arrays >>a = [1 2 3; 4 5 6; 7 8 9; ] >>a = [1:3; 4:6; 7:9; 10:12]
– Can use simple math operations as well as numerics as the entries: – Note the common format of all entries in the response (exp(1) = e = , log 10 (100) = 2, = ) – M ATLAB scales the exponent to the largest entry !!
– This scaling is sometimes deceptive: Not really zero Really zero
Concatenation – gluing arrays together if a = [ ] b = [ ] – Attaching left to right – use a comma [ a, b ] – Attaching top to bottom – use a semicolon [ a; b ] semicolon comma
– Note that sizes must match for this to work: if a = [ ] then [ a, b ] = ?? [ a; b ] = ?? – Size needs for concatenation: # of rows the same for side by side (comma) # of columns the same for top to bottom (semicolon)
Addressing and Sub-Arrays How to indicate a particular element within an array: – use parentheses after the array name – list desired row, comma, desired column – e.g. yield(2,4)
How About More than One Entry? Can specify a rectangular sub-array – again, use parenthesis after the array name – list desired rows, comma, desired columns as a vector, typically in brackets – e.g. yield([1 2],[3 4])
Used to read a value from an array (right hand side of = )
Addressing Errors
Things that do Work Single indexing of matrices counts down columns, starting at the top left
Some Useful Array Operators Transpose (single quote symbol ' ) – switches rows and columns
Useful Array Functions length(A) is the number of elements in the vector A [m n] = size(A), where A is a matrix with m rows and n columns ones(n) is an n x n matrix of ones zeros(n) is an n x n matrix of zeros
CHANGE THE MATRIX sample = >> sample(1,3)=9 sample =
Used to read a sub-array ( rhs of =) Note – scalar row choice does not need brackets!
Character Arrays Rows of the array are strings of alphanumeric characters, one array entry per character Enter using a single quotation mark ( ' ) at each end
Assigning values with too large an index just grows the array
Scalars work for sub- array replacement – they just scale up to the right size
Replacing with a null matrix is the same as deleting – but it only works for entire rows or columns
Rules of the road for arrays: Symbols to use: brackets to glue elements together to make an array (left to right or top to bottom) comma (or space) and semicolon (or enter) for separating column/row elements parentheses after the array name for addressing Be careful to match array sizes Remember – rows first, then columns in addressing
Scripts – Simple Programs So far, commands have been typed in the command window: – Executed by pressing “enter” – Edited using the arrow keys or the history window
Script (m-file) Concept A file containing Matlab commands – Can be re-executed – Is easily changed/modified or ed to someone Commands are executed one by one sequentially – File is executed by typing its name (without.m) – Results appear in the command window (or use ; ) Can be created using any text editor –.m extension – Listed in Current Directory window
Sample Scripts
DIFFUSION Diffusion – is the movement of matter driven by chemical and thermal processes such as concentration gradients and heating. Both are needed as it is an activation controlled process. Atoms will diffuse down a concentration gradient provided they have overcome the activation energy needed for the process. Copper atoms will diffuse into the Nickel until an equal concentration is Achieved. Remember that Cu-Ni system Is one of complete solid solubility. Position Cu
Practical Example Decarburization at 1200F after quench crack in material. The crack left enough open surface For the carbon to diffuse out and leave a ferrite layer either side of the crack.
ARRAYS FOR DIFFUSION DIFFUSION RATE AGAINST TEMPERATURE STRENGTH AGAINST CARBON CONTENT