/**
* Mirrors a square matrix across its main diagonal.
* @param matrix - A 2D array representing the matrix.
* @returns The mirror matrix.
*/
function mirrorMatrix(matrix: number[][]): number[][] {
// Validate that the input is a square matrix
const n = matrix.length;
if (!matrix.every(row => row.length === n)) {
throw new Error("Input must be a square matrix.");
}
// Create a new matrix to store the mirror result
const mirror: number[][] = Array.from({ length: n }, () => Array(n).fill(0));
// Swap elements across the main diagonal
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
mirror[i][j] = matrix[j][i];
}
}
return mirror;
}
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log("Original Matrix:");
console.log(matrix);
const mirroredMatrix = mirrorMatrix(matrix);
console.log("Mirrored Matrix:");
console.log(mirroredMatrix);
/*
run:
"Original Matrix:"
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
"Mirrored Matrix:"
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
*/