DOT_PRODUCT
Take two input matrices, multiply them (by dot product), and return the result. To multiply a scalar, use the MULTIPLY block. Params: a : Matrix The input matrix to be multiplied to input b. b : Matrix The input matrix to be multiplied to input a. Returns: out : Matrix The matrix result from the matrix multiplication.
Python Code
import numpy as np
from flojoy import Matrix, Scalar, Vector, flojoy
@flojoy
def DOT_PRODUCT(a: Matrix | Vector, b: Matrix | Vector) -> Matrix | Vector | Scalar:
"""Take two input matrices, multiply them (by dot product), and return the result.
To multiply a scalar, use the MULTIPLY block.
Parameters
----------
a : Matrix
The input matrix to be multiplied to input b.
b : Matrix
The input matrix to be multiplied to input a.
Returns
-------
Matrix
The matrix result from the matrix multiplication.
"""
if isinstance(a, Vector) and isinstance(b, Vector):
assert a.v.shape == b.v.shape, "Vector sizes must be equal."
return Scalar(c=np.dot(a.v, b.v))
elif isinstance(a, Matrix) and isinstance(b, Vector):
assert (
a.m.shape[0] == b.v.shape[0]
), "Vector size must be equal to Matrix column size."
return Vector(v=np.dot(a.m, b.v))
elif isinstance(a, Vector) and isinstance(b, Matrix):
assert (
a.v.shape[0] == b.m.shape[0]
), "Vector size must be equal to Matrix column size."
return Vector(v=np.dot(a.v, b.m))
elif isinstance(a, Matrix) and isinstance(b, Matrix):
assert (
a.m.shape[1] == b.m.shape[0]
), "Matrix 1 row length must be equal to Matrix 2 column length."
return Matrix(m=np.dot(a.m, b.m))
Example
Having problems with this example app? Join our Discord community and we will help you out!
In this example, we generate two matrix by using MATRIX
nodes. Then, these are multiplied using DOT_PRODUCT
node.