Транспонирование матрицы в 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];