Operators in MATLAB - Arithmetic Operators
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.
+ (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.
- Bitwise Operators in MATLAB
A description of bitwise operators in MATLAB.
- Some Useful MATLAB Commands
List of very useful MATLAB commands for efficient programming. This article presents some simple but very useful commands of MATLAB. Knowledge of these commands will help programmers to code efficiently and will also save their time. Some example com