PATTERN RECOGNITION

Pr2 Matrix Multiply

2025-03-19

📌 Source Code: simulation/pr2-matrix-multiply.js

function multiplyMatrix(arr1, arr2) {
  const size = arr1.length;
  const result = Array.from({ length: size }, () => Array(size).fill(0));

  for (let i = 0; i < size; i++) {
    for (let j = 0; j < size; j++) {
      for (let k = 0; k < size; k++) {
        result[i][j] += arr1[i][k] * arr2[k][j];
      }
    }
  }
  return result;
}

function transposeMatrix(arr) {
  const size = arr.length;
  const result = Array.from({ length: size }, () => Array(size).fill(0));

  for (let i = 0; i < size; i++) {
    for (let j = 0; j < size; j++) {
      result[i][j] += arr[j][i];
    }
  }
  return result;
}

function solution(arr1, arr2) {
  const multiplied = multiplyMatrix(arr1, arr2);
  const result = transposeMatrix(multiplied);

  return result;
}

console.log(
  `result : ${JSON.stringify(
    solution(
      [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9],
      ],
      [
        [9, 8, 7],
        [6, 5, 4],
        [3, 2, 1],
      ],
    ),
  )}`,
);