Post on 06-Apr-2018
8/3/2019 Lecture 3 Matrix and Array Operators
1/51
2
Contents
Matrix and ArrayMatrix and vector
Array and matrix operations
Solving linear systems of eq.
Polynomial and its operation
Relational & logical operators
Some conversion functions
The precedence of operators
8/3/2019 Lecture 3 Matrix and Array Operators
2/51
3.1 Matrix and Vector
MATLAB is a matrix-based computing environment.All of the data that you enter into MATLAB is stored
in the form of a matrix or a two-dimensional array.
Row Vector is a matrix of 1-by-n .
Column Vector is a matrix of n-by-1.
8/3/2019 Lecture 3 Matrix and Array Operators
3/51
3.1.1 Creating Matrix
1. The simplest way to create a matrix in MATLAB is
to use the matrix constructor operator, []. For example,
M = [row1;row2;row3;;rown];
Row vector RV = [e1,e2,,en];
Column vector CV = [e1;e2;;en];
Empty matrix EM= [];
8/3/2019 Lecture 3 Matrix and Array Operators
4/51
3.1.1 Creating Matrix
2. Using Colon operator(:) and shortcut expression:
first : incr : last .
For example
1. V = 1:10;2. V2 = 1:0.5:10;3. m = [1:4;2:5;3:6;4:7];
8/3/2019 Lecture 3 Matrix and Array Operators
5/51
8/3/2019 Lecture 3 Matrix and Array Operators
6/51
Table3.1 Matrix Functions
Function Description
ones Create a matrix or array of all ones.
zeros Create a matrix or array of all zeros.
eye Create a matrix with ones on the diagonal
and zeros elsewhere.
diag Create a diagonal matrix from a vector.
rand Create a matrix or array of uniformly
distributed random numbers.randn Create a matrix or array of normally
distributed random numbers and arrays.
8/3/2019 Lecture 3 Matrix and Array Operators
7/51
Table3.1 Matrix Functions (continued)
Function Description
magic Create a square matrix with rows, columns,and diagonals that add up to the samenumber.
randperm Create a vector (1 by n matrix) containing a
random permutation of the specifiedintegers.
Note: you can use the help elmat to list all the functions.
See : example chpt3_1.m
8/3/2019 Lecture 3 Matrix and Array Operators
8/51
diag ()
X = diag(v,k) when v is a vector of n components, returns
a square matrix X of order n+abs(k), with the elements of
v on the kth diagonal. k = 0 represents the main diagonal,
k > 0 above the main diagonal, and k < 0 below the main
diagonal.
X = diag(v) puts v on the main diagonal, same as above
with k = 0.
v = diag(X,k) for matrix X, returns a column vector vformed from the elements of the kth diagonal of X.
v = diag(X) returns the main diagonal of X, same as
above with k = 0.
See Exam le ch t3-1a.m
8/3/2019 Lecture 3 Matrix and Array Operators
9/51
3.1.2 Matrix concatenate
1. The brackets [] operator discussed earlier serves not
only as a matrix constructor, but also as the MATLAB
concatenation operator. The expression C = [A B]
horizontally concatenates matrices A and B.>> a = [1:3;2:4;3:5];
>> b=ones(3,2);
>> c = [a,b]
c =
1 2 3 1 1
2 3 4 1 1
3 4 5 1 1
8/3/2019 Lecture 3 Matrix and Array Operators
10/51
3.1.2 Matrix concatenate
Using Matrix Concatenation Functions
Note: the number of rows or columns of two matricsmust be the same.
Function Description
cat Concatenate matrices along the specifieddimension
vertcat Vertically concatenate matrices
horzcat Horizontally concatenate matrices
8/3/2019 Lecture 3 Matrix and Array Operators
11/51
3.1.2 Matrix concatenate
Cat: Concatenate arrays along specified dimension
C = cat(dim, A, B)
concatenates the arrays A and B along dim.
C = cat(dim, A1, A2, A3, A4, ...)
concatenates all the input arrays (A1, A2, A3, A4, and so
on) along dim.
For example:
cat(2, A, B) is the same as [A, B], and cat(1, A, B) is the
same as [A; B].
See Example chpt3_1b.m
8/3/2019 Lecture 3 Matrix and Array Operators
12/51
For example
>> a = [1 2 3; 2 3 4;3 4 5];
>> b = [ 1 1;1 1; 1 1];
>> d = cat(2,a,b)
d =
1 2 3 1 1
2 3 4 1 1
3 4 5 1 1
>> d2=horzcat(a,b)
d2 =
1 2 3 1 1
2 3 4 1 1
3 4 5 1 1
8/3/2019 Lecture 3 Matrix and Array Operators
13/51
3.1.3 Matrix Transpose
For real matrices, the transpose operation interchanges
aij and aji. MATLAB uses the apostrophe (or single quote)
to denote transpose.
For example,
>> A = magic(3)
A =
8 1 6
3 5 7
4 9 2
>> A'ans =
8 3 4
1 5 9
6 7 2
Transposition turns a row vector into a column vector.
8/3/2019 Lecture 3 Matrix and Array Operators
14/51
3.1.3 Matrix Transpose
For a complex vector or matrix, z, the quantity z'
denotes the complex conjugate transpose, where the
sign of the complex part of each element is reversed.
The unconjugated complex transpose, where the
complex part of each element retains its sign, is
denoted by z. .
See example.
8/3/2019 Lecture 3 Matrix and Array Operators
15/51
Example : Transpose of Complex vector
>> Z = [ 1+2*i 2+3*i 3+4*i]
Z =1.0000 + 2.0000i 2.0000 + 3.0000i 3.0000 + 4.0000i
>> Z
ans =
1.0000 - 2.0000i
2.0000 - 3.0000i3.0000 - 4.0000i
>> Z.
ans =
1.0000 + 2.0000i
2.0000 + 3.0000i
3.0000 + 4.0000i
8/3/2019 Lecture 3 Matrix and Array Operators
16/51
Table3.2 Functions of getting matrix information
Function Descriptionlength Return the length of the longest dimension.
(The length of a matrix or array with any zerodimension is zero.)
ndims Return the number of dimensions.numel Return the number of elements.
size Return the length of each dimension.
8/3/2019 Lecture 3 Matrix and Array Operators
17/51
For example
>> length(d)
ans =5
>> ndims(d)
ans =
2
>> numel(d)
ans =
15
>> size(d)
ans =
3 5
Here d is,
d =
1 2 3 1 1
2 3 4 1 1
3 4 5 1 1
8/3/2019 Lecture 3 Matrix and Array Operators
18/51
8/3/2019 Lecture 3 Matrix and Array Operators
19/51
3.2 Array and Matrix Operations(2)
MATLAB uses a special symbol to distinguish array
operations from Matrix operations.
MATLAB uses a period before symbol to indicate an
array operator. For example, Matrix Multiplication
operator is * , and Array Multiplication operator is
.* .
The following slides show the list of operators.
8/3/2019 Lecture 3 Matrix and Array Operators
20/51
8/3/2019 Lecture 3 Matrix and Array Operators
21/51
(2) Array and Matrix Multiplication
operator Description
ArrayMultiplication
a.*b
.* Element-by-elementmultiplication of a and b.
Both arrays must be the sameshape,or one of them must be
a scalar.
MatrixMultiplication
a*b
* Matrix multiplication of a and b.
The number of column in amust be equal to the number
of row in b, or one of themmust be a scalar.
8/3/2019 Lecture 3 Matrix and Array Operators
22/51
(3) Array Division
Note : Both arrays must be the same shape, or one of them is a scalar.
operator Description
Array Right Divisiona./b
./ Element-by-element
division of a and b:a(i,j)/b(i,j)
Array Left Division
a.\b
.\ Element-by-elementdivision of a and b:
but with b in thenumerator:
b(i,j)/a(i,j).
8/3/2019 Lecture 3 Matrix and Array Operators
23/51
(4) Matrix Division
Operator Description
Matrix
Right Divisiona / b
/ Matrix division defined bya*inv(b), where inv(b) is theinverse of matrix b.
Matrix
Left Divisiona \ b
\ Matrix division defined byinv(a)*b, where inv(a) is theinverse of matrix a.
8/3/2019 Lecture 3 Matrix and Array Operators
24/51
(5) Matrix and Array Power
operator Description
Array Power
a.^b
.^ Element-by-elementexponentiation of a and b:
a(i,j)^b(i,j).
Both arrays must be the sameshape,or one of them is ascalar.
Matrix powerM^p
^ Calculate the A
p
See chpt3_1.m
8/3/2019 Lecture 3 Matrix and Array Operators
25/51
3.3 Solving Linear Systems of Equations
3.3.1 For Square Systems
Ax=b
Where A is a nn nonsingular square coefficient
matrix, x and b both are n 1 column vector.
The solution is
X=A\b
OR X = inv(A)*b
X = A^-1 *b;
8/3/2019 Lecture 3 Matrix and Array Operators
26/51
Example Solving the linear system
% sample of Matrix left division operator.
% M-file name is leftdvs.m
A = [1 2 1 4;2 0 4 3;4 2 2 1;-3 1 3 2];
B = [ 13 28 20 6]';
X = A\B;
Y = X';
disp('X='); disp(X);
str = num2str(Y); disp(['The X is ',str]);
8/3/2019 Lecture 3 Matrix and Array Operators
27/51
The result after running M-file
The solution is
>> leftdvs
X=
3.0000
-1.0000
4.0000
2.0000
The X is 3 -1 4 2
8/3/2019 Lecture 3 Matrix and Array Operators
28/51
3.3 Solving Linear Systems of Equations
3.3.2. Overdetermined Systems: Overdetermined systems
of simultaneous linear equations are often encountered in
various kinds of curve fitting to experimental data.
For example,
(1) The experimental datat y
0.0 0.82
0.3 0.72
0.8 0.63
1.1 0.601.6 0.55
2.3 0.50
(2) The curve model is y(t) =c1+c2e-t
8/3/2019 Lecture 3 Matrix and Array Operators
29/51
3.3 Solving Linear Systems of Equations
(3)create the Coefficient Matrix E
E =[ones(size(t)) exp(-t)]
(4)Solving the Over-determined Systems
E*c = y
c =E\y
(5) Plotting the fitting curve.
See M-file chpt3_2.m
8/3/2019 Lecture 3 Matrix and Array Operators
30/51
8/3/2019 Lecture 3 Matrix and Array Operators
31/51
8/3/2019 Lecture 3 Matrix and Array Operators
32/51
3.4 Polynomial and its operation
For polynomial of degree n
P(x)=a0xn+a1x
n-1++an-1x+an
MATLAB denotes the coefficient vector as
P =[a0 a1 an-1 an ]
MATLAB provides a set of following functions to
manipulate the polynomials.
8/3/2019 Lecture 3 Matrix and Array Operators
33/51
3.4.1 Polynomial functions
1) roots - Find polynomial roots.
2) poly - Convert roots to polynomial.
3) polyval - Evaluate polynomial.
4) polyvalm - Evaluate polynomial with matrix argument.
5) polyfit - Fit polynomial to data.
6) polyder - Differentiate polynomial.
7) polyint - Integrate polynomial analytically.
8) conv - Multiply polynomials.
9) deconv - Divide polynomials.
8/3/2019 Lecture 3 Matrix and Array Operators
34/51
3.4.2 Using Polynomials functions
Consider P(x) = -0.02x3+0.1x2-0.2x+1.66
a) Find the value of p(4) and the value of P(x) at x = [1 2
3 4 5]
b) Find the roots of P(x) = 0
c) Plot the curve of P(x) at interval [1,6]
d) Find the definite integral of P(x) taken over [1,4]
e) Find P(4)
See chpt3_3.m
8/3/2019 Lecture 3 Matrix and Array Operators
35/51
Curve fitting with polyfit()
MATLAB provides two functions formodeling your data by using a polynomial
function.
Polynomial Fit Functions
polyfit(x,y,n) finds the coefficients of a polynomial p(x)
of degree n that fits the data y by minimizing the sum
of the squares of the deviations of the data from the
model (least-squares fit).
8/3/2019 Lecture 3 Matrix and Array Operators
36/51
Example of function polyfit()
Suppose we measure a quantity y at several values of
time t:
t : 0 0.3 0.8 1.1 1.6 2.3
y : 0.5 0.82 1.14 1.25 1.35 1.40
The data can be modeled by a polynomial function
y=a0t2+a1t+a2
Using least square fit method to find the polynomial
coefficients a0,a1,a2 with function
p=polyfit(t,y,2)
See chpt3_4.m ,that shows the function polyfit.
8/3/2019 Lecture 3 Matrix and Array Operators
37/51
Example of function polyfit()
8/3/2019 Lecture 3 Matrix and Array Operators
38/51
The result of polyfit()
8/3/2019 Lecture 3 Matrix and Array Operators
39/51
3.5 Relational and logical operators
3.5.1 Relational operators
The relational expression has the form a1 op a2 .
Where a1 ,a2 are arithmetic expression,variables or string.
Theop is one of the following relational operators.
== equal to ~= Not equal to
> greater than >= greater than or equal to
< less than
8/3/2019 Lecture 3 Matrix and Array Operators
40/51
3.5 Relational & Logical Operators
3.5.2 logical operators
The logical expression has the forms.
l1 op l2 or op l1
Where the l1 and l2 are logical expression or variables,and
op is the one of the logical operators shown in the follows.
~ logical NOT & logical AND
| logical OR xor logical Exclusive OR
MATLAB interprets a zero value as false, and any nonzero
values as true.
8/3/2019 Lecture 3 Matrix and Array Operators
41/51
3.5 Relational & Logical Operators
3.5.3 Examples
8/3/2019 Lecture 3 Matrix and Array Operators
42/51
3.5.4 Using Logicals in Array Indexing
The logical vectors created from logical and relational
operations can be used to reference subarrays.
Suppose X is an ordinary matrix and L is a matrix of
the same size that is the result of some logicaloperation. Then X(L) specifies the elements of X where
the elements of L are nonzero.
8/3/2019 Lecture 3 Matrix and Array Operators
43/51
3.5.4 Examples of Using Logical indexing
Logical Indexing Example 1. This example creates
logical array B that satisfies the condition A > 0.5, and
uses the positions of ones in B to index into A. This is
called logical indexing:
>> A = rand(5); %create a 55 matrix(array).
>> B = A > 0.5; %generate a same size logical matrix(array).
>> A(B) = 0 %Logical indexing.
A =
0.2920 0.3567 0.1133 0 0.0595
0 0.4983 0 0.2009 0.0890
0.3358 0.4344 0 0.2731 0.2713
0 0 0 0 0.4091
0.0534 0 0 0 0.4740
See Example chpt3_6.m
8/3/2019 Lecture 3 Matrix and Array Operators
44/51
3.5.4 Examples of Using Logical indexing
Logical Indexing Example 2. This example highlights the location of theprime numbers in a magic square using logical indexing to set the nonprimes
to 0:>> A = magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1>> B = isprime(A)
B =
0 1 1 1
1 1 0 0
0 1 0 0
0 0 0 0
>> A(~B) = 0; % Logical indexing>> A
A =
0 2 3 13
5 11 0 0
0 7 0 0
0 0 0 0
8/3/2019 Lecture 3 Matrix and Array Operators
45/51
Logical Indexing Example 2
>> A = magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> A(~isprime(A))=0 %Logical indexing
A =
0 2 3 13
5 11 0 0
0 7 0 0
0 0 0 0
8/3/2019 Lecture 3 Matrix and Array Operators
46/51
3.6 Some Conversion Functions
1. int8, int16, int32, int64: Convert to signed integer.
I = int?(X) converts the elements of array X into signed integers. double
and single values are rounded to the nearest int? value on conversion.
2. ceil Round toward infinity.
B=ceil(A) rounds the elements of A to the nearest integers greater than
or equal to A.
3. fix Round towards zero.
B = fix(A) rounds the elements of A toward zero, resulting in an array
of integers.
8/3/2019 Lecture 3 Matrix and Array Operators
47/51
3.6 Some Conversion Functions
4. floor Round towards minus infinity.
B = floor(A) rounds the elements of A to the nearest integers less
than or equal to A.
5. round Round to nearest integer.
Y = round(X) rounds the elements of X to the nearest integers.
6. mod - Modulus (signed remainder after division).
7. rem - Remainder after division.
See Example chpt3-7.m
8/3/2019 Lecture 3 Matrix and Array Operators
48/51
3.7 The precedence of Operators
1. Parentheses ()
2. Transpose (.'), complex conjugate transpose ('), matrix power (^) ,
power (.^)
3. Unary plus (+), unary minus (-), logical negation (~)
4. Multiplication (.*), right division (./), left division(.\), matrix
multiplication (*), matrix right division (/), matrix left division (\)
5. Addition (+), subtraction (-)
6. Colon operator (:)
7. Less than (=), equal to (==), not equal to (~=)
8. Element-wise AND (&)
9. Element-wise OR (|)
H k 2
8/3/2019 Lecture 3 Matrix and Array Operators
49/51
Homework 2
1 Set up a vector called N with five elements having the values: 1, 2, 3,
4, 5. Using N, create assignment statements for a vector X whichwill result in X having these values:
a) 2, 4, 6, 8, 10
b) 1/2, 1, 3/2, 2, 5/2
c) 1, 1/2, 1/3, 1/4, 1/5d) 1, 1/4, 1/9, 1/16, 1/25
2.The identity matrix is a square matrix that has ones on the
diagonal and zeros elsewhere. You can generate one with the
eye() function in MATLAB. Use MATLAB to find a matrix B,
such that when multiplied by matrix A=[ 1 2; -1 0 ] the identitymatrix I=[ 1 0; 0 1 ] is generated. That is A*B=I.
(tips: use "/" operator to get B)
Send your answers to ma.haizhong@hotmail.com before Nov 4, 2010
H k 2
mailto:ma.haizhong@hotmail.commailto:ma.haizhong@hotmail.com8/3/2019 Lecture 3 Matrix and Array Operators
50/51
3 Using left division operator ('\') to solve curve fitting problem.
a)Find the least squares parabola f(x) = ax2+bx+c for the set of data
b)Compare your results (a,b,c) with the results returned by built-in
function p=polyfit(x,y,2).
c)Plot the sample data points with blue circle marker and the fitting
curve.
Homework 2
xk 2 1 0 1 2
yk 5.8 1.1 3.8 3.8 1.5
Send your answers to ma.haizhong@hotmail.com before Nov 4, 2010
mailto:ma.haizhong@hotmail.commailto:ma.haizhong@hotmail.com8/3/2019 Lecture 3 Matrix and Array Operators
51/51
Thanks