Documentation Center

  • Trial Software
  • Product Updates

dot

Syntax

Description

example

C = dot(A,B) returns the scalar dot product of A and B.

  • If A and B are vectors, then they must have the same length.

  • If A and B are matrices or multidimensional arrays, then they must have the same size. In this case, the dot function treats A and B as collections of vectors. The function calculates the dot product of corresponding vectors along the first array dimension whose size does not equal 1.

example

C = dot(A,B,dim) evaluates the dot product of A and B along dimension, dim. The dim input is a positive integer scalar.

Examples

expand all

Dot Product of Real Vectors

Create two simple, three-element vectors.

A = [4 -1 2];
B = [2 -2 -1];

Calculate the dot product of A and B.

C = dot(A,B)
C =

     8

The result is 8 since

Dot Product of Complex Vectors

Create two complex vectors.

A = [1+i 1-i -1+i -1-i];
B = [3-4i 6-2i 1+2i 4+3i];

Calculate the dot product of A and B.

C = dot(A,B)
C =

   1.0000 - 5.0000i

The result is a complex scalar since A and B are complex. In general, the dot product of two complex vectors is also complex. An exception is when you take the dot product of a complex vector with itself.

Find the inner product of A with itself.

D = dot(A,A)
D =

     8

The result is a real scalar. The inner product of a vector with itself is related to the Euclidean length of the vector, norm(A).

Dot Product of Matrices

Create two matrices.

A = [1 2 3;4 5 6;7 8 9];
B = [9 8 7;6 5 4;3 2 1];

Find the dot product of A and B.

C = dot(A,B)
C =

    54    57    54

The result, C, contains three separate dot products. dot treats the columns of A and B as vectors and calculates the dot product of corresponding columns. So, for example, C(1) = 54 is the dot product of A(:,1) with B(:,1).

Find the dot product of A and B, treating the rows as vectors.

D = dot(A,B,2)
D =

    46
    73
    46

In this case, D(1) = 46 is the dot product of A(1,:) with B(1,:).

Dot Product of Multidimensional Arrays

Create two multidimensional arrays.

A = cat(3,[1 1;1 1],[2 3;4 5],[6 7;8 9])
B = cat(3,[2 2;2 2],[10 11;12 13],[14 15; 16 17])
A(:,:,1) =

     1     1
     1     1


A(:,:,2) =

     2     3
     4     5


A(:,:,3) =

     6     7
     8     9


B(:,:,1) =

     2     2
     2     2


B(:,:,2) =

    10    11
    12    13


B(:,:,3) =

    14    15
    16    17

Calculate the dot product of A and B along the third dimension (dim = 3).

C = dot(A,B,3)
C =

   106   140
   178   220

The result, C, contains four separate dot products. The first dot product, C(1,1) = 106, is equal to the dot product of A(1,1,:) with B(1,1,:).

Input Arguments

expand all

A,B — Input arraysnumeric arrays

Input arrays, specified as numeric arrays.

Data Types: single | double
Complex Number Support: Yes

dim — Dimension to operate alongpositive integer scalar

Dimension to operate along, specified as a positive integer scalar. If no value is specified, the default is the first array dimension whose size does not equal 1.

Consider two 2-D input arrays, A and B:

  • dot(A,B,1) treats the columns of A and B as vectors and returns the dot products of corresponding columns.

  • dot(A,B,2) treats the rows of A and B as vectors and returns the dot products of corresponding rows.

dot returns conj(A).*B if dim is greater than ndims(A).

More About

expand all

Scalar Dot Product

The scalar dot product of two real vectors of length n is equal to

This relation is commutative for real vectors, such that dot(u,v) equals dot(v,u). If the dot product is equal to zero, then u and v are perpendicular.

For complex vectors, the dot product involves a complex conjugate. This ensures that the inner product of any vector with itself is real and positive definite.

Unlike the relation for real vectors, the complex relation is not commutative, so dot(u,v) equals conj(dot(v,u)).

Algorithms

  • When inputs A and B are real or complex vectors, the dot function treats them as column vectors and dot(A,B) is the same as sum(conj(A).*B).

  • When the inputs are matrices or multidimensional arrays, the dim argument determines which dimension the sum function operates on. In this case, dot(A,B) is the same as sum(conj(A).*B,dim).

See Also

| |

Was this topic helpful?