# chainer.functions.matmul¶

chainer.functions.matmul(a, b, transa=False, transb=False)[source]

Computes the matrix multiplication of two arrays.

Parameters
• a (`Variable` or N-dimensional array) – The left operand of the matrix multiplication. If `a` and `b` are both 1-D arrays, `matmul` returns a dot product of vector a and vector b. If 2-D arrays, `matmul` returns matrix product of `a` and `b`. If either’s dimension is larger than 2, they are treated as a stack of matrices residing in the last two indexes. `matmul` returns a stack of each two arrays. In this case, `a` and `b` are broadcasted along axes except the last two.

• b (`Variable` or N-dimensional array) – The right operand of the matrix multiplication. Its array is treated as a matrix in the same way as `a`’s array.

• transa (bool) – If `True`, each matrices in `a` will be transposed. If `a.ndim == 1`, do nothing.

• transb (bool) – If `True`, each matrices in `b` will be transposed. If `b.ndim == 1`, do nothing.

Returns

The result of the matrix multiplication.

Return type

Variable

Example

```>>> a = np.array([[1, 0], [0, 1]], np.float32)
>>> b = np.array([[4, 1], [2, 2]], np.float32)
>>> F.matmul(a, b).array
array([[4., 1.],
[2., 2.]], dtype=float32)
```