Matrix transposition is a mathematical operation that involves swapping the rows and columns of a matrix. In simpler terms, the element in the ithi^{th}ith row and jthj^{th}jth column of the original matrix moves to the jthj^{th}jth row and ithi^{th}ith column in the transposed matrix.
In this article, we’ll walk through how to implement matrix transposition in Java with a clear and concise example.
Steps for Matrix Transposition
	- Input the Matrix: First, create and input a matrix of any size (rows × columns).
- Create a Transpose Matrix: For every element in the matrix, swap the row and column indices.
- Display the Result: Print the transposed matrix.
Java Code Implementation
import java.util.Scanner;
public class MatrixTransposition {
    // Method to perform matrix transposition
    public static int[][] transposeMatrix(int[][] matrix) {
        // Get the number of rows and columns of the original matrix
        int rows = matrix.length;
        int cols = matrix[0].length;
        // Create a new matrix for the transposed result (rows and cols are swapped)
        int[][] transposedMatrix = new int[cols][rows];
        // Traverse the original matrix and assign elements to the transposed matrix
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                transposedMatrix[j][i] = matrix[i][j];  // Swap the rows and columns
            }
        }
        return transposedMatrix;
    }
    // Method to print the matrix
    public static void printMatrix(int[][] matrix) {
        for (int[] row : matrix) {
            for (int element : row) {
                System.out.print(element + " ");
            }
            System.out.println();
        }
    }
    public static void main(String[] args) {
        // Initialize Scanner for user input
        Scanner scanner = new Scanner(System.in);
        // Get the matrix dimensions from the user
        System.out.print("Enter the number of rows: ");
        int rows = scanner.nextInt();
        System.out.print("Enter the number of columns: ");
        int cols = scanner.nextInt();
        // Create the matrix and get user input for elements
        int[][] matrix = new int[rows][cols];
        System.out.println("Enter the elements of the matrix:");
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                matrix[i][j] = scanner.nextInt();
            }
        }
        // Display the original matrix
        System.out.println("\nOriginal Matrix:");
        printMatrix(matrix);
        // Get the transposed matrix
        int[][] transposedMatrix = transposeMatrix(matrix);
        // Display the transposed matrix
        System.out.println("\nTransposed Matrix:");
        printMatrix(transposedMatrix);
    }
}
Explanation of the Code
	- Matrix Input
	
		- We use a Scanner to accept matrix dimensions (rows and columns) from the user.
- We then create a 2D array (matrix) and fill it with user-provided values.
 
- Matrix Transposition
	
		- The transposeMatrix method takes the original matrix as input and creates a new matrix (transposedMatrix) where the rows and columns are swapped.
- A nested loop is used to assign values from the original matrix to the transposed one by switching their row and column indices.
 
- Printing the Matrix
	
		- The printMatrix method prints the 2D array row by row.
 
- Main Method
	
		- The main method asks for user input, calls the necessary methods to transpose the matrix, and then prints both the original and the transposed matrices.
 
Example Output
![]()
Conclusion
Matrix transposition is a fundamental concept in linear algebra and is often used in various algorithms, including those involving image processing, machine learning, and graph theory. In Java, transposing a matrix is straightforward using a nested loop and a new 2D array. This program can be expanded to handle more complex operations, but the basic idea remains the same: swapping rows and columns.