0% found this document useful (0 votes)
14 views51 pages

Chapter 2

This document discusses vectors and matrices in MATLAB. It covers how to create vectors using brackets and separating elements with commas or semicolons. It also discusses how to create matrices from vectors, use colon operators to generate vectors, and address specific elements or subarrays using indices. Additional array functions like find, max, and sort are also introduced.

Uploaded by

patrldainik2412
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views51 pages

Chapter 2

This document discusses vectors and matrices in MATLAB. It covers how to create vectors using brackets and separating elements with commas or semicolons. It also discusses how to create matrices from vectors, use colon operators to generate vectors, and address specific elements or subarrays using indices. Additional array functions like find, max, and sort are also introduced.

Uploaded by

patrldainik2412
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Chapter 02

Numeric, Cell, and Structure


Arrays

1
Vectors 1

To create a row vector, separate the elements by


semicolons. Use square brackets. For example,
>>p = [3,7,9]
p =
3 7 9
You can create a column vector by using the transpose
notation (').
>>p = [3,7,9]'
p =
3
7
9

2
Vectors 2

You can also create a column vector by separating the


elements by semicolons. For example,
>>g = [3;7;9]
g =
3
7
9

3
Vectors 3

You can create vectors by ''appending'' one vector to


another.
For example, to create the row vector u whose first three
columns contain the values of r = [2,4,20] and
whose fourth, fifth, and sixth columns contain the values of
w = [9,-6,3], you type u = [r,w]. The result is the
vector u = [2,4,20,9,-6,3].

4
Vectors 4

The colon operator (:) easily generates a large vector of


regularly spaced elements. Parentheses are not needed
but can be used for clarity. Do not use square brackets.
Typing
>>x = m:q:n
creates a vector x of values with a spacing q. The first
value is m. The last value is n if m − n is an integer
multiple of q. If not, the last value is less than n.

5
Vectors 5

For example, typing x = 0:2:8 creates the vector x =


[0,2,4,6,8], whereas typing x = 0:2:7 creates the
vector x = [0,2,4,6].

To create a row vector z consisting of the values from 5 to 8


in steps of 0.1, type z = 5:0.1:8.

If the increment q is omitted, it is presumed to be 1. Thus


typing y = -3:2 produces the vector y = [-3,-2,-
1,0,1,2].

6
Vectors 6

The linspace command also creates a linearly spaced row


vector, but instead you specify the number of values rather
than the increment.
The syntax is linspace(x1,x2,n), where x1 and x2 are
the lower and upper limits and n is the number of points.
For example, linspace(5,8,31) is equivalent to
5:0.1:8.
If n is omitted, the spacing is 1.

7
Vectors 7

The logspace command creates an array of


logarithmically spaced elements.
Its syntax is logspace(a,b,n), where n is the number
of points between 10a and 10b.
For example, x = logspace(-1,1,4) produces the
vector x = [0.1000, 0.4642, 2.1544, 10.000].
If n is omitted, the number of points defaults to 50.

8
Magnitude, Length, and Absolute Value
of a Vector 1

Keep in mind the precise meaning of these terms when


using MATLAB.
The length command gives the number of elements in the
vector.
The magnitude of a vector x having elements x1 , x2 , ..., xn
is a scalar, given by √ ( x1 + x2 + ... + xn ), and is the
2 2 2

same as the vector’s geometric length.


The absolute value of a vector x is a vector whose
elements are the absolute values of the elements of x.

9
Magnitude, Length, and Absolute Value
of a Vector 2

For example, if x = [2,-4,5],


• its length is 3; (computed from length(x)).
• its magnitude is √[2 + (−4) + 5 ] = 6.7082; (computed from
2 2 2

sqrt(x’*x)).
• its absolute value is [2,4,5] (computed from abs(x)).

10
Matrices
A matrix has multiple rows and columns. For example, the
matrix
 2 4 10 
16 3 7 
M =  
8 4 9 
 
 3 12 15 

has four rows and three columns.


Vectors are special cases of matrices having one row or
one column.

11
Creating Matrices
If the matrix is small you can type it row by row, separating
the elements in a given row with spaces or commas and
separating the rows with semicolons. For example, typing
>>A = [2,4,10;16,3,7];

creates the following matrix:


 2 4 10 
A=  
16 3 7 
Remember, spaces or commas separate elements in
different columns, whereas semicolons separate elements
in different rows.

12
Creating Matrices from Vectors
Suppose a = [1,3,5] and b = [7,9,11] (row
vectors). Note the difference between the results given by
[a b] and [a;b] in the following session:
>>c = [a b];
c =
1 3 5 7 9 11
>>D = [a;b]
D =
1 3 5
7 9 11

13
Array Addressing 1

You need not use symbols to create a new array. For


example, you can type
>> D = [[1,3,5];[7,9,11]];

The colon operator selects individual elements, rows,


columns, or “subarrays” of arrays. Here are some
examples:
• v(:) represents all the row or column elements of the vector v.
• v(2:5) represents the second through fifth elements; that is
v(2), v(3), v(4), v(5).

14
Array Addressing 2

A(:,3) denotes all the elements in the third column of the


matrix A.
A(:,2:5) denotes all the elements in the second through fifth
columns of A.
A(2:3,1:3) denotes all the elements in the second and third
rows that are also in the first through third columns.
v = A(:) creates a vector v consisting of all the columns of A
stacked from first to last.
A(end,:) denotes the last row in A, and A(:,end) denotes the
last column.

15
Array Addressing 3

You can use array indices to extract a smaller array from


another array. For example, if you first create the array B
 2 4 10 13 
16 3 7 18 
B =  
 8 4 9 25
 
 3 12 15 17 
then type C = B(2:3,1:3), you can produce the
following array:
16 3 7 
C=  
 8 4 9 

16
Additional Array Functions 1

[u,v,w] = find(A) Computes the arrays u and v,


containing the row and column indices
of the nonzero elements of the matrix A,
and the array w, containing the values
of the nonzero elements. The array w
may be omitted.

length(A) Computes either the number of


elements of A if A is a vector or the
largest value of m or n if A is an m × n
matrix.

17
Additional Array Functions 2

max(A) Returns the algebraically largest


element in A if A is a vector.
Returns a row vector containing the
largest elements in each column if A is
a matrix.
If any of the elements are complex,
max(A) returns the elements that have
the largest magnitudes.

18
Additional Array Functions 3

[x,k] = max(A) Similar to max(A) but stores the


maximum values in the row vector x
and their indices in the row vector k.

min(A) Like max but returns minimum values.


and
[x,k] = min(A)

19
Additional Array Functions 4

size(A) Returns a row vector [m n] containing


the sizes of the m × n array A.

sort(A) Sorts each column of the array A in


ascending order and returns an array the
same size as A.

sum(A) Sums the elements in each column of


the array A and returns a row vector
containing the sums.

20
Additional Array Functions 5

The function size(A) returns a row vector [m n]


containing the sizes of the m × n array A. The length(A)
function computes either the number of elements of A if A
is a vector or the largest value of m or n if A is an m × n
matrix.
For example, if
 6 2
A =  −10 −5
 3 0 

then max(A) returns the vector [6,2]; min(A)returns the


vector [-10, -5]; size(A) returns [3, 2]; and
length(A) returns 3.

21
The Workspace Browser and Variable
Editor

Source: MATLAB 22
Multidimensional Arrays
They consist of two-dimensional matrices “layered”
to produce a third dimension. Each “layer” is called
a page.

cat(n,A,B,C, ...) Creates a new array by


concatenating the arrays A,B,C,
and so on along the dimension n.

23
Array Addition and Subtraction
For example:
 6 −2   9 8  15 6 
10 3  =  −12 14  =  −2 17  (1)
     
Array subtraction is performed in a similar way.
The addition shown in Equation 1 is performed in MATLAB
as follows:
>>A = [6,-2;10,3];
>>B = [9,8;-12,14]
>>A+B
ans =
15 6
-2 17
24
Multiplication 1

Multiplying a matrix A by a scalar w produces a matrix


whose elements are the elements of A multiplied by w. For
example:
 2 9   6 27 
3  = 
5 −7  15 −21
This multiplication is performed in MATLAB as follows:

>>A = [2, 9; 5,−7];


>>3*A
ans =
6 27
15 −21

25
Multiplication 2

Multiplication of an array by a scalar is easily defined


and easily carried out.
However, multiplication of two arrays is not so
straightforward.
MATLAB uses two definitions of multiplication:
(1) array multiplication (also called element-by-element
multiplication), and
(2) matrix multiplication.

26
Division and exponentiation
Division and exponentiation must also be carefully
defined when you are dealing with operations
between two arrays.
MATLAB has two forms of arithmetic operations on
arrays. Next we introduce one form, called array
operations, which are also called element-by-element
operations. Then we will introduce matrix
operations. Each form has its own applications.

Division and exponentiation must also be carefully


defined when you are dealing with operations
between two arrays.
27
Element-by-element operations 1

Symbol Operation Form Examples

+ Scalar-array addition A + B [6,3]+2=[8,5]

− Scalar-array subtraction A − B [8,3]-5=[3,-2]

+ Array addition A + B [6,5]+[4,8]=[10,13]

− Array subtraction A − B [6,5]-[4,8]=[2,-3]

.* Array multiplication A.*B [3,5].*[4,8]=[12,40]

./ Array right division A./B [2,5]./[4,8]=[2/4,5/8]

. back slash Array left division A.\B [2,5].\[4,8]=[2\4,5\8]

. and Array exponentiation A.^B [3,5].^2=[3^2,5^2]


2.^[3,5]=[2^3,2^5]
[3,5].^[2,4]=[3^2,5^4]

28
Element-by-element operations 2

Array or Element-by-element multiplication is defined only for


arrays having the same size. The definition of the product x.*y,
where x and y each have n elements, is

x.*y = [x(1)y(1), x(2)y(2), ... , x(n)y(n)]

if x and y are row vectors. For example, if

x = [2, 4, − 5], y = [− 7, 3, − 8] (2.3−4)

then z = x.*y gives

z = [2( − 7), 4 (3), − 5(−8)] = [−14, 12, 40]

29
Element-by-element operations 3

If x and y are column vectors, the result of x.*y is a


column vector. For example z = (x’).*(y’) gives
 2(−7)   −14 
z =  4(3)  =  12 
−5(−8)   40 

Note that x’ is a column vector with size 3 × 1 and thus


does not have the same size as y, whose size is 1 × 3.
Thus for the vectors x and y the operations x’.*y and
y.*x’ are not defined in MATLAB and will generate an
error message.

30
Element-by-element operations 4

The array operations are performed between the elements


in corresponding locations in the arrays. For example, the
array multiplication operation A.*B results in a matrix C
that has the same size as A and B and has the elements ci j
= a i j bi j . For example, if
 11 5   −7 8 
A=  B= 
 −9 4   6 2 
then C = A.*B gives this result:
11( − 7) 5(8)   −77 40 
C=  =  −54 8 
 −9(6) 4(2)   

31
Element-by-element operations 5

The built-in MATLAB functions such as sqrt(x) and exp(x)


automatically operate on array arguments to produce an array
result the same size as the array argument x.
Thus these functions are said to be vectorized functions.
For example, in the following session the result y has the same
size as the argument x.

>>x = [4, 16, 25];


>>y = sqrt(x)
y =
2 4 5

32
Element-by-element operations 6

However, when multiplying or dividing these functions, or


when raising them to a power, you must use element-by-
element operations if the arguments are arrays.

For example, to compute z = (e y sin x) cos 2 x , you must type

z = exp(y).*sin(x).*(cos(x)).^2

You will get an error message if the size of x is not the same
as the size of y. The result z will have the same size as x
and y.

33
Array Division 1

The definition of array division is similar to the definition of


array multiplication except that the elements of one array are
divided by the elements of the other array. Both arrays must
have the same size. The symbol for array right division is ./.
For example, if

x = [8, 12, 15] y = [−2, 6, 5]

then z = x./y gives

z = [8/(− 2), 12/6, 15/5] = [−4, 2, 3]

34
Array Division 2

Also, if

 24 20   −4 5 
A=  B= 
− 9 4   3 2 

then C = A./B gives

 24/(−4) 20/5  −6 4 
C=  = 
 − 9 /3 4/2   −3 2 

35
Array Exponentiation 1

MATLAB enables us not only to raise arrays to powers but


also to raise scalars and arrays to array powers.
To perform exponentiation on an element-by-element basis,
we must use the .^ symbol.
For example, if x = [3, 5, 8], then typing x.^3
produces the array [33 , 53 , 83 ] = [27, 125, 512].

36
Matrix-Matrix Multiplication 1

In the product of two matrices AB, the number of columns


in A must equal the number of rows in B. The row-column
multiplications form column vectors, and these column
vectors form the matrix result. The product AB has the
same number of rows as A and the same number of
columns as B. For example,

 6 −2  (6)(9) + (−2)(−5) (6)(8) + (−2) (12) 


10 3   9 8  = (10)(9) + (3)(−5) (10)(8) + (3)(12) 
   −5 12   
 4 7     (4)(9) + (7)( −5) (4)(8) + (7)(12) 
64 24 
= 75 116 
1 116 
37
Matrix-Matrix Multiplication 2

Use the operator * to perform matrix multiplication in


MATLAB. The following MATLAB session shows how to
perform matrix multiplication.

>>A = [6,-2;10,3;4,7];
>>B = [9,8;-5,12];
>>A*B
ans =
64 24
75 116
1 116

38
Matrix-Matrix Multiplication 3

Matrix multiplication does not have the commutative


property; that is, in general, AB  BA. A simple example will
demonstrate this fact:
6 −2   9 8 78 20 
AB =     =  
10 3  −12 14   54 122 
whereas
 9 8  6 −2  134 6 
BA = 
−  10 3  =  68 66 
 12 14     
Reversing the order of matrix multiplication is a common
and easily made mistake.

39
Special Matrices 1

Two exceptions to the noncommutative property are the null


or zero matrix, denoted by 0 and the identity, or unity,
matrix, denoted by I.

The null matrix contains all zeros and is not the same as the
empty matrix [ ], which has no elements.

These matrices have the following properties:

0A = A0 = 0

IA = AI = A

40
Special Matrices 2

The identity matrix is a square matrix whose diagonal


elements are all equal to one, with the remaining elements
equal to zero.

For example, the 2 × 2 identity matrix is

1 0 
I= 
 0 1 

The functions eye(n) and eye(size(A)) create an n × n


identity matrix and an identity matrix the same size as the
matrix A.

41
Special Matrices 3

Sometimes we want to initialize a matrix to have all zero


elements. The zeros command creates a matrix of all
zeros.

Typing zeros(n) creates an n × n matrix of zeros,


whereas typing zeros(m,n) creates an m × n matrix of
zeros.

Typing zeros(size(A)) creates a matrix of all zeros


having the same dimension as the matrix A. This type of
matrix can be useful for applications in which we do not
know the required dimension ahead of time.

The syntax of the ones command is the same, except that it


creates arrays filled with ones.

42
Matrix Left Division and Linear Equations
6x + 12y + 4z = 70
7x − 2y + 3z = 5
2x + 8y − 9z = 64
>>A = [6,12,4;7,-2,3;2,8,-9];
>>B = [70;5;64];
>>Solution = A\B
Solution =
3
5
-2
The solution is x = 3, y = 5, and z = −2.
43
Polynomial Coefficients
The function poly(r)computes the coefficients of the
polynomial whose roots are specified by the vector r. The
result is a row vector that contains the polynomial’s
coefficients arranged in descending order of power.

For example,

>>c = poly([-2, -5])


c =
1 7 10

44
Polynomial Roots
The function roots(a)computes the roots of a polynomial
specified by the coefficient array a. The result is a column
vector that contains the polynomial’s roots.

For example,

>>r = roots([2, 14, 20])


r =
-2
-5

45
Polynomial Multiplication and Division
The function conv(a,b) computes the product of the two
polynomials described by the coefficient arrays a and b. The
two polynomials need not be the same degree. The result is the
coefficient array of the product polynomial.

The function [q,r] = deconv(num,den) computes the


result of dividing a numerator polynomial, whose coefficient
array is num, by a denominator polynomial represented by the
coefficient array den. The quotient polynomial is given by the
coefficient array q, and the remainder polynomial is given by
the coefficient array r.

46
Polynomial Multiplication and Division:
Examples
>>a = [9,-5,3,7];
>>b = [6,-1,2];
>>product = conv(a,b)
product =
54 -39 41 29 -1 14
>>[quotient, remainder] = deconv(a,b)
quotient =
1.5 -0.5833
remainder =
0 0 -0.5833 8.1667
47
Plotting Polynomials
The function polyval(a,x)evaluates a polynomial at
specified values of its independent variable x, which can be
a matrix or a vector. The polynomial’s coefficients of
descending powers are stored in the array a. The result is
the same size as x.

48
Example of Plotting a Polynomial
To plot the polynomial f (x) = 9 x3 − 5 x 2 + 3x + 7 for − 2 ≤ x
≤ 5, you type

>>a = [9,-5,3,7];
>>x = -2:0.01:5;
>>f = polyval(a,x);
>>plot(x,f),xlabel(’x’),ylabel(’f(x)’)

49
Cell Array Functions

Function Description
C = cell(n) Creates an n × n cell array C of
empty matrices.
C = cell(n,m) Creates an n × m cell array C of
empty matrices.
celldisp(C) Displays the contents of cell array C.
cellplot(C) Displays a graphical representation
of the cell array C.

50
© McGraw Hill LLC. All rights reserved. No reproduction or distribution without the prior written consent of McGraw Hill LLC.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy