How to mirror a matrix across the main diagonal in Swift

1 Answer

0 votes
import Foundation

// Function to mirror a square matrix across its main diagonal
func mirrorMatrix(_ matrix: inout [[Int]]) {
    let n = matrix.count
    
    // Ensure the matrix is square
    guard matrix.allSatisfy({ $0.count == n }) else {
        print("Error: The matrix must be square.")
        return
    }
    
    // Swap elements above the diagonal with elements below the diagonal
    for i in 0..<n {
        for j in i+1..<n {
            // Swap matrix[i][j] with matrix[j][i]
            let temp = matrix[i][j]
            matrix[i][j] = matrix[j][i]
            matrix[j][i] = temp
        }
    }
}

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

print("Original Matrix:")
for row in matrix {
    print(row)
}

mirrorMatrix(&matrix)

print("\nMirrored Matrix:")
for row in matrix {
    print(row)
}



/*
run:

Original Matrix:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

Mirrored Matrix:
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]

*/

 



answered Aug 28 by avibootz
...