Adding function to multiply matrices

This commit is contained in:
Donald Calloway 2025-10-02 08:44:32 -07:00
parent 2410ae43f4
commit 40f55dbf7d

53
matrix_mult.py Normal file
View File

@ -0,0 +1,53 @@
from typing import List
"""
Multiplies two matrices M and N and returns the resulting matrix.
Args:
M (List[List]): The first matrix as a list of lists, with dimensions m x k.
N (List[List]): The second matrix as a list of lists, with dimensions k x n.
Returns:
List[List]: The product matrix as a list of lists, with dimensions m x n.
Raises:
AssertionError: If the number of columns in M does not equal the number of rows in N.
Example:
>>> M = [
... [1, 2, 4],
... [0, 1, 2]
... ]
>>> N = [
... [1, 2],
... [3, 4],
... [0, 1]
... ]
>>> multiply(M, N)
[[7, 14], [3, 6]]
"""
def multiply(M: List[List], N: List[List]) -> List[List]:
mrows, mcols = len(M), len(M[0])
nrows, ncols = len(N), len(N[0])
assert mcols == nrows, "Matrices are not compatible for multiplication"
# Initialize result matrix with zeros
result = [[0 for _ in range(ncols)] for _ in range(mrows)]
for i in range(mrows):
for j in range(ncols):
for k in range(mcols):
result[i][j] += M[i][k] * N[k][j]
return result
M = [
[1, 2, 4],
[0, 1, 2]
]
N = [
[1, 2],
[3, 4],
[0, 1]
]
print(multiply(M, N))