Перемножение матриц python
Есть код, он работает, попытался сделать по другому, получил ошибку. Мне интересно, почему так
for j in range(n):
for i in range(m):
for l in range(k):
#g += dataA[i][l]*dataB[l][j] ;первоначальный вариант (работает)
g += np.dot(read_a[i][l], read_b[l][j]) ;второй вариант (работает)
#g += np.matmul(read_a[i][l], read_b[l][j]) ;третий вариант (не работает)
obj.write(str(g) + ' ;')
g = 0
obj.write('\n')
obj.close()
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Аргументом не может быть число, для этого используйте a*b
np.matmul ведь перемножает целые матрицы, вот и используйте инструмент по назначению
с = np.matmul(a, b)
Неполноценно используется и np.dot - умножайте целиком строку на столбец (через срез), т.е. внутренний цикл не нужен