Class 2 Notes

advertisement
Arrays
>> x = [1 2 3 4 5];
y = 2*x
y=
2
4
6
8
10
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 33 - 50
Scripts chapter 4, pages 85 - 93
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
–
row vector: 1 x C array
[ 9 7 5 4 2]
is a 1 x 5 row vector
–
column vector: R x 1 array
1
3
4
4
or
[4]
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
[0
[1
[7
[1
2
2
5
3
4
3
3
5
6
4
1
7
8 10 ]
5 ]
-1 -3 ]
]
Note – does
not hit 8!!
Arrays


Fundamental data unit in Matlab
–
all variables are stored as arrays
Data values organized into rows and columns
yield =
–
4 5
10 4
18 -3
3
66
2
9
20
0
Marty
name = James
Bob
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.
4 5 3
9
yield is 3 by 4
10 4 66 20
yield =
18 -3
test =
4
5
2
3
0
5
0
test is 1 by 5
Building Arrays


>>a = [1 2 3; 4 5 6; 7 8 9; 10 11 12]
>>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 = 2.71828, log10(100) = 2, 2-12 = 0.00024414)
–
MATLAB scales the exponent to the largest entry !!
–
This scaling is sometimes deceptive:
Not really zero
Really zero

Concatenation – gluing arrays together
if
–
a=[1 2 3]
b=[4 5 6]
Attaching left to right – use a comma
[ a, b ]
1 2 3 4 5 6
comma
–
Attaching top to bottom – use a semicolon
semicolon
[ a; b ]
1 2 3
4 5 6
–
Note that sizes must match for this to work:
if
then
a=[1 2 3] b =
[ a, b ] = ??
–
4
10
5
4
[ 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)
yield =
4 5
10 4
18 -3
3
66
2
9
20
0
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])
yield =
4 5
10 4
18 -3
3
66
2
9
20
0

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 =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

>> sample(1,3)=9
sample =
1 2 9 4
5 6 7 8
9 10 11 12
13 14 15 16

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 subarray 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
–
–

Commands are executed one by one sequentially
–
–

Can be re-executed
Is easily changed/modified or e-mailed to someone
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.
Cu
Position
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
Download