This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.

# Dot

 or Dotgives products of vectors, matrices, and tensors.
• gives an explicit result when a and b are lists with appropriate dimensions. It contracts the last index in a with the first index in b.
• Various applications of Dot:
 {a1,a2}.{b1,b2} scalar product of vectors {a1,a2}.{{m11,m12},{m21,m22}} product of a vector and a matrix {{m11,m12},{m21,m22}}.{a1,a2} product of a matrix and a vector {{m11,m12},{m21,m22}}.{{n11,n12},{n21,n22}} product of two matrices
• The result of applying Dot to two tensors and is the tensor . Applying Dot to a rank tensor and a rank tensor gives a rank tensor. »
• When its arguments are not lists or sparse arrays, Dot remains unevaluated. It has the attribute Flat.
Scalar product of vectors:
Products of matrices and vectors:
Matrix product:
Scalar product of vectors:
 Out[1]=

Products of matrices and vectors:
 Out[1]=
 Out[2]=
 Out[3]=

Matrix product:
 Out[1]=
 Scope   (2)
and are 5×5 random matrices of zeros and ones:
Use exact arithmetic to find the matrix product of and :
Use machine arithmetic:
Use higher-precision arithmetic:
Use SparseArray objects:
Compute the matrix product of random real and complex rectangular matrices:
Dot works for tensors:
The dimensions of the result are those of the input with the common dimension collapsed:
Any combination is allowed as long as products are done with a common dimension:
 Applications   (1)
A linear mapping :
Get the matrix representation for the linear mapping:
Apply the linear mapping to a vector:
Using the matrix with Dot is faster:
is a 2×3×4 tensor and is a 4×5 random matrix:
The result of applying Dot to two tensors and is the tensor :
Applying Dot to a rank tensor and a rank tensor gives a rank tensor.
is a random complex vector:
Norm is given by :
is a 3×3 matrix:
Compute the matrix product :
This is the same as MatrixPower:
This is equivalent to composing the action of on a vector three times:
Dot is a special case of Inner:
Dot effectively treats vectors multiplied from the right as column vectors:
Dot effectively treats vectors multiplied from the left as row vectors:
To get an outer product, you need to form the inputs as matrices:
Or you can use KroneckerProduct:
Or Outer: