# chainer.functions.matmul¶

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

Computes the matrix multiplication of two arrays.

Parameters: a (Variable) – 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 arrays’ 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. a and b must have the same dimension. b (Variable) – 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. The result of the matrix multiplication. Variable

Example

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