행렬의 곱셈 결과는 또 다른 행렬이 됩니다. 이 결과 행렬은 왼쪽 행렬의 행 개수와 오른쪽 행렬의 열 개수를 갖게 되므로 결과 행렬은 다음과 같이 선언할 수 있습니다.
int[][] arr = new int[arr1.length][arr2[0].length];
// 행렬 곱셈
return arr;
반복문을 돌며 각 원소에 알맞은 값을 찾아봅시다.
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
// arr[i][j]의 값 구하기
}
}
그림 3-20과 행렬 연산 과정에서 알 수 있듯이, 행렬의 곱셈 결과는 곱해지는 두 행렬의 행과 열을 순회하면서 곱한 값들을 모두 더해주어야 합니다. 다음과 같이 구현할 수 있습니다.
arr[i][j] = 0;
for (int k = 0; k < arr1[i].length; k++) {
arr[i][j] += arr1[i][k] * arr2[k][j];
}
이렇게 행렬의 곱셈을 구현해보았습니다.