# Documentation

### This is machine translation

Translated by
Mouse over text to see original. Click the button below to return to the English verison of the page.

# dot

## Syntax

• ``C = dot(A,B)``
example
• ``C = dot(A,B,dim)``
example

## 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

collapse all

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

` C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)`

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)`.

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,:)`.

Create two multidimensional arrays.

```A = cat(3,[1 1;1 1],[2 3;4 5],[6 7;8 9]) ```
```A(:,:,1) = 1 1 1 1 A(:,:,2) = 2 3 4 5 A(:,:,3) = 6 7 8 9 ```
```B = cat(3,[2 2;2 2],[10 11;12 13],[14 15; 16 17]) ```
```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

collapse all

Input arrays, specified as numeric arrays.

Data Types: `single` | `double`
Complex Number Support: Yes

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)`.

collapse all

### Scalar Dot Product

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

`$u\text{\hspace{0.17em}}·\text{\hspace{0.17em}}v=\sum _{i=1}^{n}{u}_{i}{v}_{i}={u}_{1}{v}_{1}+{u}_{2}{v}_{2}+...+{u}_{n}{v}_{n}\text{\hspace{0.17em}}.$`

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.

`$u\text{\hspace{0.17em}}·\text{\hspace{0.17em}}v=\sum _{i=1}^{n}{\overline{u}}_{i}{v}_{i}\text{\hspace{0.17em}}.$`

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

### Tall Array Support

This function supports tall arrays with the limitation:

For the syntax `dot(A,B)`, the arrays `A` and `B` must have the same size, even if they are vectors.

### 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)`.

Watch now