Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,971 questions

51,913 answers

573 users

How to mirror a matrix across the main diagonal in JavaScript

1 Answer

0 votes
/**
 * Function to mirror a matrix across its main diagonal
 * @param {number[][]} matrix - The input 2D array (matrix)
 * @returns {number[][]} - The mirror matrix
 */
function mirrorMatrix(matrix) {
    // Validate input: Ensure it's a 2D array
    if (!Array.isArray(matrix) || !matrix.every(row => Array.isArray(row))) {
        throw new Error("Input must be a 2D array (matrix).");
    }

    const rows = matrix.length;
    const cols = matrix[0].length;

    // Create a new matrix with dimensions swapped
    const mirror = Array.from({ length: cols }, () => Array(rows).fill(0));

    // Fill the mirror matrix
    for (let i = 0; i < rows; i++) {
        for (let j = 0; j < cols; j++) {
            mirror[j][i] = matrix[i][j];
        }
    }

    return mirror;
}

const matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

console.log("Original Matrix:");
console.table(matrix);

const mirroredMatrix = mirrorMatrix(matrix);

console.log("Mirrored Matrix:");
console.table(mirroredMatrix);



/*
run:

Original Matrix:
┌─────────┬───┬───┬───┐
│ (index) │ 0 │ 1 │ 2 │
├─────────┼───┼───┼───┤
│ 0       │ 1 │ 2 │ 3 │
│ 1       │ 4 │ 5 │ 6 │
│ 2       │ 7 │ 8 │ 9 │
└─────────┴───┴───┴───┘
Mirrored Matrix:
┌─────────┬───┬───┬───┐
│ (index) │ 0 │ 1 │ 2 │
├─────────┼───┼───┼───┤
│ 0       │ 1 │ 4 │ 7 │
│ 1       │ 2 │ 5 │ 8 │
│ 2       │ 3 │ 6 │ 9 │
└─────────┴───┴───┴───┘

*/

 



answered Aug 28, 2025 by avibootz
edited Aug 28, 2025 by avibootz

Related questions

...