dous

Posted on

# Transposing a Matrix in Java

Sometimes you may need to transpose a matrix. For example while working on linear algebra. The main logic is writing the elements in matrix’s row as a column.

I choose Java to do this however you can use any language. If even the syntax changes, the main logic always will be the same.

## Main method

``````Scanner sc = new Scanner(System.in);

System.out.println("Row number:");
int row = sc.nextInt();
System.out.println("Column number:");
int col = sc.nextInt();

int[][] arr = new int[row][col];

for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[0].length; j++){
System.out.println("Enter the arr["+i+"]["+j+"] element:");
arr[i][j] = sc.nextInt();
}
}

System.out.println();
print2dArr(arr);
System.out.println();

print2dArr(tranpose(arr));

sc.close();
``````

## Transpose Method

``````static int[][] tranpose(int[][] arr){
int[][] ret = new int[arr.length][arr[0].length];

for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[0].length; j++){
ret[j][i] = arr[i][j];
}
}

return ret;
}
``````

## Print Method

``````static void print2dArr(int[][] arr){
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[0].length; j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
``````

## Output

``````Row number:
3
Column number:
3
Enter the arr[0][0] element: 1
Enter the arr[0][1] element: 6
Enter the arr[0][2] element: 2
Enter the arr[1][0] element: 7
Enter the arr[1][1] element: 8
Enter the arr[1][2] element: 3
Enter the arr[2][0] element: 2
Enter the arr[2][1] element: 3
Enter the arr[2][2] element: 1

1 6 2
7 8 3
2 3 1

1 7 2
6 8 3
2 3 1
``````