# mlx.core.matmul — MLX 0.0.7 documentation

Skip to main content
`Ctrl`+`K`

# mlx.core.matmul

mlx.core.matmul(a: array, b: array, /, *, stream: Union[ None , Stream , Device ] = None) → array

  Matrix multiplication.

  Perform the (possibly batched) matrix multiplication of two arrays. This function supports broadcasting for arrays with more than two dimensions.

  - If the first array is 1-D then a 1 is prepended to its shape to make it a matrix. Similarly if the second array is 1-D then a 1 is appended to its shape to make it a matrix. In either case the singleton dimension is removed from the result.

  - A batched matrix multiplication is performed if the arrays have more than 2 dimensions. The matrix dimensions for the matrix product are the last two dimensions of each input.

  - All but the last two dimensions of each input are broadcast with one another using standard numpy-style broadcasting semantics.

  Parameters:

    - a (array) – Input array or scalar.

    - b (array) – Input array or scalar.

  Returns:

    The matrix product of `a` and `b`.

  Return type:

    array