Транспонирование матрицы в Java — программа с вложенными циклами

Чтобы понять этот пример, вам нужно знать следующие темы Java:

  • массивы (Arrays);

  • многомерные массивы;

  • методы (Methods);

  • цикл for.

Транспонирование матрицы — это операция, при которой строки матрицы становятся её столбцами. Для матрицы 2x3:

Matrix
a11    a12    a13
a21    a22    a23

Transposed Matrix
a11    a21
a12    a22
a13    a23

Пример: программа транспонирования матрицы

public class Transpose {

    public static void main(String[] args) {
        int row = 2, column = 3;
        int[][] matrix = { {2, 3, 4}, {5, 6, 4} };

        // Display current matrix
        display(matrix);

        // Transpose the matrix
        int[][] transpose = new int[column][row];
        for(int i = 0; i < row; i++) {
            for (int j = 0; j < column; j++) {
                transpose[j][i] = matrix[i][j];
            }
        }

        // Display transposed matrix
        display(transpose);
    }

    public static void display(int[][] matrix) {
        System.out.println("The matrix is: ");
        for(int[] row : matrix) {
            for (int column : row) {
                System.out.print(column + "    ");
            }
            System.out.println();
        }
    }
}

Вывод:

The matrix is:
2    3    4
5    6    4
The matrix is:
2    5
3    6
4    4

В приведённой выше программе метод display() используется только для того, чтобы вывести содержимое матрицы на экран.

Здесь исходная матрица имеет форму 2x3, то есть row = 2 и column = 3.

Для транспонированной матрицы мы меняем порядок на 3x2, то есть row = 3 и column = 2. Поэтому массив объявлен как transpose = int[column][row].

Само транспонирование выполняется простой заменой строк на столбцы:

transpose[j][i] = matrix[i][j];