Professional Documents
Culture Documents
Why arrays?
Calculate statistics for 100 high temperatures
from the last 100 days.
temp1 = 82
temp2 = 78
...
temp100 = 81
Tedious and error-prone
Need a way to concisely represent related data
Array
Collection of related numbers
Arranged in rows and/or columns
Stored in a single variable
A variable holding a single value, such as
we have seen up until now, is called a
scalar.
value = 5 % value is a scalar
Row Array
Example
create a row array called temps that holds high
temperature readings for four days
temps = [82 78 91 87] OR
temps = [82, 78, 91, 87] (commas are optional)
Examples
W = [1 : 1 : 5]
W is 1 2 3 4 5
X = 1.5 : 0.1: 2.1
X is 1.5 1.6 1.7 1.8 1.9 2.0 2.1
Y = [10 : -2 : 0]
Y is 10 8 6 4 2 0
Z = -3 : 3
Z is -3 -2 -1 0 +1 +2 +3
Column Arrays
Just like a row array,
it is one variable that
consists of n
elements
Sometimes called a
column vector
Example
X=1:1:3
Y = X'
X is 1 2 3
Y is 1
2
3
Another Example
X = linspace (1, 5, 3)
Y = X'
X is
1 3 5
Y is
1
3
5
Arr is
1.0
1.2
1.4
Subscripts
Individual array elements accessed by
using subscripts
Subscript is the element number
Subscript must be an integer within the
range of the array
Examples
x = temps (1)
y = temps(3)
x = temps (78)
temps(4) = 23
% x is 82
% y is 91
%error - subscript too big
%changes content of last
%element from 87 to 23
More Examples
A = [2; 3; 4] % A is 2
3
4
m = A(1) % m is 2
n = A(3) % n is 4
A(2) = 7 % A now 2
7
4
A = [2; 3; 4]
for k = 1:1:3
A(k) = 0
end
%A is 2
3
4
%A is 0
0
0
Array Operations
Two kinds of operations:
Element-by-element, where operations are
performed on each element (next)
Using the rules of linear algebra (later)
Assignment Statements
Contents of one array copied element by
element into another array
Both arrays must be the same size
If new array does not exist, it will be
created to be the same size as the old
array
Ex: X = 1: 4
% X is 1 2 3 4
Y=X
% Y is 1 2 3 4
Scalar - Array
Operations
Apply operation to each element of the
array
X = [1, 2, 3]
Y=X+2
% Y is 3 4 5
Y=X - 1
% Y is 0 1 2
num = 3
Y = X * (num + 1) % Y is 4 8 12
Y=X/2
% Y is 0.5 1 1.5
Example
Plot the equation y = mx + b
x should vary between -10 and +10
m and b should be chosen by the user
Algorithm
Prompt for and read in m (the slope) and b
(the offset)
Create an array X containing values
between -10 and +10
Create array Y using this formula:
Y = m*X + b
plot X vs Y
Example
m = input ('Please enter the slope: ');
b = input ('Please enter the offset: ');
X = [-10 : 10];
Y = (m * X) + b;
plot (X, Y)
12
10
8
6
4
2
0
-2
-4
-6
-8
-10
-8
-6
-4
-2
10
Element-by-Element
Operations
A = B op C means A(1) = B(1) op C(1)
A(2) = B(2) op C(2)
...
A(n) = B(n) op C(n)
Where op is + (addition)
- (subtraction)
.* (multiplication)
./ (division)
Examples
A = [ 1 2 3]
B = [ 4 5 6]
C=A+B
C=B -A
C = A .* B
C = B ./ A
% C is 5 7 9
% C is 3 3 3
% C is 4 10 18
% C is 4 2.5 2
Two-Dimensional Arrays
A two dimensional array has rows and
columns, like a table
Sometimes called a matrix
10
Creating Matrices
Similar to creating vectors (onedimensional arrays)
Use commas or spaces to separate
elements in a specific row
Use semicolon or enter to separate
individual rows
Examples
A = [1, 2, 3; 4, 5, 6]
A is
123
456
B = [1 2
34
5 6]
B is
1 2
3 4
5 6
11
Creating Matrices
Can also use
first: spacing: last
first: last (spacing assumed to be 1)
linspace (first, last, number)
More Examples
C = [1:2:7; linspace(1,10,4)]
C is 1 3 5 7
1 4 7 10
D = [0, 0, 3:5
D is 0 0 3 4 5
0, 0, 4:6
00456
0 0 7:9]
00789
Subscripts
Individual array elements accessed by
using subscripts
Subscript is row number, column number
Both parts of the subscript must be
integers within the range of the array
12
Examples
A = [1 1 1; 2 2 2; 3 3 3]
A is 1 1 1
222
333
m = A(1,1)
% m is 1
n = A(3, 1)
% n is 3
Examples, con't
A(2, 2) = 5
A(1, 1:3) = 8
A is 1 1 1
252
333
A is 8 8 8
252
333
Examples (con't)
A(1:3, 2) = 7
A is 8 7 8
272
373
B = [10 10 10]
A (1, :) = B
A is 10 10 10
2 7 2
3 7 3
Colon, in this case means all columns. Can also
be used for all rows
13
Element by element
operations
Can also be used for 2-dimensional arrays
A = B op C means
A(1, 1) = B(1, 1) op C(1, 1)
A(1, 2) = B(1, 2) op C(1, 2)
...
A(n, m) = B(n, m) op C(n,m)
Arrays usually must be same size
Example
ex1 = [1 2 3; 4 5 6]
ex2 = [1 1 1; 2 2 2]
ex3 = ex1 + ex2
ex3 is 2 3 4
6 7 8
ex4 = ex1 .* ex2
ex4 is 1 2 3
8 10 12
Matrix Multiplication
Recall that element -by-element
multiplication is done using the .* operator
Can also do matrix multiplication using the
rules of linear algebra - uses the * operator
If C = A*B:
Number of columns in A must equal number
of rows in B
C will have same number of rows as A and
same number of columns as B
14
B=
C = A1*B1 + A 2 * B 2
Ex: A = [3 - 2]
B=
B1
B2
4
5
C = 3 * 4 + (-2)*5 = 10
Matrix Multiplication
A = A11 A12
A21 A22
C11 =
C12 =
C21 =
C22 =
B = B11 B12
B21 B22
Matrix Multiplication
Example
A =
1 2
3 4
B= 5
7
C=
(1*5)+(2*7) (1*6)+(2*8)
(3*5)+(4*7) (3*6)+(4*8)
C =
19 22
43 50
6
8
15
Matrix Multiplication in
Matlab
A = [1 4 2; 5 7 3; 9 1 6; 4 2 8];
B = [6 1; 2 5; 7 3];
C=A*B
C=
(note that C has same
28 27
number of rows as A
65 49
and same number of
98 32
columns as B)
84 38
Matrix Multiplication in
Matlab
A = [1 4 2; 5 7 3; 9 1 6; 4 2 8];
B = [6 1; 2 5; 7 3];
D=B*A
Error: number of columns in first matrix
must equal the number of rows in second
matrix. In this case, 2 ~= 4
Note that matrix multiplication is not
commutative: A*B ~= B*A
16
Matrix Division
Identity matrix is all 0's with 1's on the
diagonal. Ex:
1 0 0
0 1 0
0 0 1
Matrix B is the inverse of matrix A if A*B is
the identity matrix.
Inverse of A is represented as A-1
Example: Solving
systems of linear
equations
Solve the following systems of linear
equations:
4x - 2y + 6z = 8
2x + 8y + 2z = 4
6x + 10y + 3z = 0
17
Background
Systems of linear equations can be written
as matrices
4 -2 6
x
8
2 8 2
* y
=
4
6 10 3
z
0
This is of the form AX = B
Solving for X: X = A -1B
Algorithm
Create array A from coefficients on left-hand
side of equations
Create array B from right-hand side of
equations
Solutions = A\B
Matlab Code
A = [4 -2 6; 2 8 2; 6 10 3];
B = [8; 4; 0];
X = A\B
X = -1.8049
0.2927
2.6341
18
Matrix functions
Many, many built-in Matlab functions for use
with vectors and matrices
ones(row, col) - create an array of all ones
zeros(row, col) - create an array of all zeros
A = ones (1, 3)
A=111
B = zeros (2, 3)
B= 000
000
Matrix Functions
mean: finds the mean of a vector
max: finds the max of a vector
min: finds the min of a vector
A = [1 2 3 4 5];
meanA = mean(A )
maxA = max(A)
meanA is 3
maxA is 5
Example
Recall that a row or a column in a matrix is
also a vector, so mean max and min can
be applied to them also
B = [20 30 40; 50 60 70]
max_col1 = max(B(:,1))
min_row2 = min(B(2, 1:3))
19
Example- Statistics on
an array
Assume you are a quality assurance
engineer working in a widget factory.
Every hour, you pull 5 widgets off the
production line and weigh them.
Calculate the mean weight, the max weight
and the min weight. Also, determine if
each weight is within its tolerance of 10 lbs
plus or minus 0.1 lb.
Algorithm
Put the widget weights into a vector
Calculate and display mean max and min
For each widget weight
if min >= weight >= max
display OK
else
display out of tolerance
20
Matlab Code
%initialize array with widget weights
Weight = [9.92 10.05 10.08 9.89 10.12];
%calculate and display mean, max and min
weight_mean = mean(Weight );
weight_max = max(Weight );
weight_min = min(Weight );
fprintf ('The mean is %.2f, the max is %.2f and the min is
%.2f \n', weight_mean, weight_max , weight_min)
21