Матричное умножение: эффективное сочетание и трансформация данных
Умножение матриц - это операция сопоставления двух матриц, где каждый элемент результирующей матрицы является суммой произведений элементов соответствующих строк и столбцов исходных матриц. То есть, если у нас есть матрица A размером m x n и матрица B размером n x p, то результатом будет матрица C размером m x p, такая что каждый элемент C[i][j] определяется следующим образом:
C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + ... + A[i][n-1]*B[n-1][j]
Пример кода на языке Python для умножения двух матриц:
def matrix_multiplication(matrix1, matrix2):
m = len(matrix1) # количество строк в матрице A
n = len(matrix2) # количество столбцов в матрице B
p = len(matrix2[0]) # количество столбцов в матрице B
result = [[0]*p for _ in range(m)] # создаем результирующую матрицу C размером m x p, заполненную нулями
for i in range(m):
for j in range(p):
for k in range(n):
result[i][j] += matrix1[i][k] * matrix2[k][j] # суммируем произведения соответствующих элементов
return result
matrix1 = [[1, 2], [3, 4]]
matrix2 = [[5, 6], [7, 8]]
result = matrix_multiplication(matrix1, matrix2)
print(result) # выводит: [[19, 22], [43, 50]]
В данном примере мы умножаем две матрицы: matrix1 размером 2 x 2 и matrix2 размером 2 x 2. Результатом будет матрица result размером 2 x 2. Каждый элемент result[i][j] будет равен сумме произведений элементов соответствующей строки из matrix1 на соответствующий столбец из matrix2, например для элемента result[0][0] это будет 1*5 + 2*7 = 19.