Напишите функцию dot_product (M, N), которая принимает в качестве параметров две матрицы M и N и возвращает новую матрицу, содержащую скалярное произведение этих матриц.
Я понимаю логику c, но не уверен, как сделать умножение каждой строки и столбца, это то, что у меня есть до сих пор
def dot_product(M, N):
""" takes as parameters two matrices M and N, and returns a new matrix
containing dot product of these matrices
"""
assert( len(M[0]) == len(N)), " innter length differnet "
new_matrix = zeros(len(M[0]) , len(N))
transP = transpose(N)
storing_values = []
for r in range(len(M)):
for c in range(len(M[0])):
storing_values += M[r][c] * transP[r][c]
Я использую вспомогательную функцию transpose to rotate матрица N, поэтому, когда я повторяюсь, я смотрю на одинаковые столбцы и строки для обеих матриц.
вывод должен выглядеть следующим образом: [[26.00, 4.00] [62.00, 13.00]]