Python 활용하기
행렬의 곱셈
swwho
2023. 11. 6. 15:12
728x90
반응형
계산 방법 1
- mat1이 n행 m열, mat2이 p행 q열
- 행렬의 곱셈 연산은 3중 for문으로 해결할 수 있다.
result = [[0] * n for _ in range(n)]
for i in range(n):
for j in range(q):
for k in range(m):
result[i][j] += mat1[i][k] * mat2[k][j]
계산 방법 2
- *는 unpacking을 수행한다. 따라서 unpacking후 zip을 수행하면 행과 열을 바꿀 수 있다.
- mat2의 행과 열을 바꾼 후에는, 두 리스트의 곱셈과 같은 연산 과정이다.
result = []
for mat1 in a:
tmp = []
for mat2 in list(zip(*b)):
tmp.append(sum([x*y for x, y in zip(mat1, mat2)]))
result.append(tmp)