How to Transpose a Square Matrix - Java Program

The transposition of a matrix is one of the most commonly studied questions in school or collages when learning Java Programs in practical labs.



transpose a square matrix Java

In the transposition of a matrix we are supposed to flip the matrix over its diagonal, i.e. the rows of the original matrix become the columns and the columns of the original matrix become the rows of the transposed matrix.


Pseudo Logic Building


Java Program To Transpose A Matix

package org.code2care.java.arrays.examples;

import java.util.Arrays;

/**
 * Java Program to transpose a
 * Matrix
 * <p>
 * Author: Code2care.org
 * Date: 28 Apr 2023
 */
public class JavaMatrixTranspose {

    public static void main(String[] args) {

        //2-D Matrix
        int[][] originalMatrix = {
                {1, 4},
                {2, 5},
                {3, 6}
        };

        int matrixRows = originalMatrix.length;
        int matrixCols = originalMatrix[0].length;

        //New matrix to store the transposed rows and columns
        int[][] transpose = new int[matrixCols][matrixRows];

        for (int i = 0; i < matrixRows; i++) {
            for (int j = 0; j < matrixCols; j++) {
                //copy into transposed originalMatrix
                transpose[j][i] = originalMatrix[i][j];
            }
        }

        System.out.println("Input Matrix:");
        Arrays.stream(transpose)
                .forEach(row -> {
                    Arrays.stream(row)
                            .forEach(element -> System.out.print(element + " "));
                    System.out.println();
                });

        System.out.println("Transposed Matrix:");
        Arrays.stream(originalMatrix)
                .forEach(row -> {
                    Arrays.stream(row)
                            .forEach(element -> System.out.print(element + " "));
                    System.out.println();
                });

    }
}

Output:

Input Matrix:
1 2 3 
4 5 6 

Transposed Matrix:
1 4 
2 5 
3 6 

Let us see another example with a Square 3x3 matix.

Tranpose a 3x3 Matix in Java

package org.code2care.java.arrays.examples;

import java.util.Arrays;

/**
 * Transpose 3x3 Matrix
 * Author: Code2care.org
 * Date: 28 Apr 2023
 */
public class JavaMatrixTranspose {

    public static void main(String[] args) {

        //3x3 Matrix
        int[][] input3x3Matrix = {
                {21, 14, 41},
                {23, 53, 34},
                {43, 46, 56}
        };

        int matrixRows = input3x3Matrix.length;
        int matrixCols = input3x3Matrix[0].length;

        int[][] transpose = new int[matrixCols][matrixRows];

        for (int i = 0; i < matrixRows; i++) {
            for (int j = 0; j < matrixCols; j++) {
                transpose[j][i] = input3x3Matrix[i][j];
            }
        }

        System.out.println("Input Matrix:");
        Arrays.stream(transpose)
                .forEach(row -> {
                    Arrays.stream(row)
                            .forEach(element -> System.out.print(element + " "));
                    System.out.println();
                });

        System.out.println("Transposed Matrix:");
        Arrays.stream(input3x3Matrix)
                .forEach(row -> {
                    Arrays.stream(row)
                            .forEach(element -> System.out.print(element + " "));
                    System.out.println();
                });

    }
}

Output:

Input Matrix:
21 23 43 
14 53 46 
41 34 56 

Transposed Matrix:
21 14 41 
23 53 34 
43 46 56 

Comments & Discussion

Facing issues? Have questions? Post them here! We're happy to help!