Matrix multiplication
is the matrix product of C = A*BA and B. If
A is an m-by-p and B is a p-by-n
matrix, then C is an m-by-n matrix defined by
This definition says that C(i,j) is the inner product of
the ith row of A with the
jth column of B. You can write this
definition using the MATLAB® colon operator as
C(i,j) = A(i,:)*B(:,j)
A and B, the number of columns
of A must equal the number of rows of B.
Matrix multiplication is not universally commutative for
nonscalar inputs. That is, A*B is typically not equal to
B*A. If at least one input is scalar, then
A*B is equivalent to A.*B and is
commutative.With chained matrix multiplications such as A*B*C, you
might be able to improve execution time by using parentheses to dictate the
order of the operations. Consider the case of multiplying three matrices with
A*B*C, where A is 500-by-2,
B is 2-by-500, and C is 500-by-2.
With no parentheses, the order of operations is left to right so
A*B is calculated first, which forms a
500-by-500 matrix. This matrix is then multiplied with
C to arrive at the 500-by-2 result.
If you instead specify A*(B*C), then
B*C is multiplied first, producing a 2-by-2
matrix. The small matrix then multiplies A to
arrive at the same 500-by-2 result, but with fewer operations and
less intermediate memory usage.
colon | cross | dot | pagemtimes | times