Operators in MATLAB - Arithmetic Operators

MATLAB Logo
MATLAB Logo

Different types of operators are used in MATLAB. We will be discussing the Arithmetic operators here. It is assumed that the reader of this article has some basic knowledge of MATLAB. For a detailed discussion of bitwise operators click on the following link.

Bitwise Operators


Arithmetic operators

+ (plus - addition operator) and - (minus - subtraction operator)

As the name suggests, this operator is used to add two or more objects whether it be scalars, vectors or matrices. For matrices and vectors the size of all objects must be same. This means you can not add a vector to a matrix. But a scalar can be added to a vector or a matrix. Let us understand it with the help of an example.

If I have a matrix X= [ 1 2 3; 4 5 6; 7 8 9] and would like to increment all elements of this matrix by one (1), I would not need to add an identity matrix to it (though this is one of the solutions). I would only write X+1 and all elements will be incremented.

On the other hand if we define a vector v=[1 2 3] and try to add it to X, we will get an error saying "Matrix dimensions must agree". If it is required that v is added to each row of matrix X then a primitive approach is to perform this by X+[v; v; v].

Similar techniques can be implemented for other variations of matrices, vectors and scalars.

* (mtimes - Matrix multiply)

If X and Y are two matrices such that the number of columns of X and the number of rows of Y are same then X*Y is the matrix product of X and Y. Any scalar can be used to multiply a vector, matrix or any other scalar. Important point here is to remember that the number of columns of X must equal the number of rows of Y.

.* (Array multiply)

This is used to perform element-by-element multiplication of vectors or matrices. So the dimensions of the matrices/vectors must be same. Note that this is unlike matrix multiplication discussed above. For example if x = [1 2 3] and y = [2 3 4] then x.*y = [2 6 12]. Similar operations are performed if we array multiply the matrices.

^ (mpower - Matrix power)

If X is a square matrix and p a scalar then Z = X ^ p is X to the power p. If both X and p are matrices an error will result. Give it a try on MATLAB for better understanding.

.^ (power - Array power)

Z = X .^ p will result in each element of matrix raised to the power determined by the scalar p. There is another variation of this command. Z = X .^ Y where both X and Y are matrices of same dimension. Each element of X is raised to the power determined by the respective element in matrix Y.

Note: The following information is taken from MATLAB help.

\ (Backslash or left matrix divide)

A\B is the matrix division of A into B, which is roughly the same as INV(A)*B , except it is computed in a different way. If A is an N-by-N matrix and B is a column vector with N
components, or a matrix with several such columns, then X = A\B is the solution to the equation A*X = B computed by Gaussian elimination. A warning message is printed if A is badly scaled or nearly singular. A\EYE(SIZE(A)) produces the inverse of A.

If A is an M-by-N matrix with M < or > N and B is a column vector with M components, or a matrix with several such columns, then X = A\B is the solution in the least squares sense to the
under- or overdetermined system of equations A*X = B. The effective rank, K, of A is determined from the QR decomposition with pivoting. A solution X is computed which has at most K nonzero components per column. If K < N this will usually not be the same solution as PINV(A)*B. A\EYE(SIZE(A)) produces a generalized inverse of A.

/ (Slash or right matrix divide)

A/B is the matrix division of B into A, which is roughly the same as A*INV(B) , except it is computed in a different way. More precisely, A/B = (B'\A')'.

.\ (Left array divide)

A.\B denotes element-by-element division. A and B must have the same dimensions unless one is a scalar. A scalar can be divided with anything.

./ (Right array divide)

A./B denotes element-by-element division. A and B must have the same dimensions unless one is a scalar. A scalar can be divided with anything.

More by this Author


Comments

No comments yet.

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working