OpenCV를 이용해 코딩을 하면서 기초를 다시 자질 겸, 어떤 분께서 올려주신 OpenCV 강의를 보던 중 행렬 곱셈이라는 내용이 내왔다. 아직 행렬에 대해서 배우지 않아서 구글링을 해보았다.
[행렬 곱셈 하는 법]
A B
[ 1, 2, 3 ] [ 1, 2, 3 ] [ (1*1)+(2*2)+(3*3), (1*2)+(2*1)+(3*2), (1*3)+(2*1)+(3*3) ]
[ 2, 3, 1 ] * [ 2, 1, 1 ] = [ (2*1)+(3*2)+(1*3), (2*2)+(3*1)+(1*2), (2*3)+(3*1)+(1*2) ]
[ 3, 4, 2 ] [ 3, 2, 2 ] [ (3*1)+(4*2)+(2*3), (3*2)+(4*1)+(2*2), (3*3)+(4*1)+(2*2) ]
나도 식 세우면서 헷갈린다. 계산 실수하기 쉬울 것 같다. 내 뇌가 똑똑하지가 않아서;
즉, 위에서 구했던 식을 정리하자면
A, B의 곱은 (A의 i행의 성분) * (B의 j열의 성분) 의 합 = AB의 i행 j열의 성분
[그림 1: 행렬 설명 그림]
[그림 2: 행렬 곱셈 알고리즘]
[그림 3: 출력 결과]
반응형