javaで行列の行と列を入れ替えるには?
行列を入れ替えるには新しい行列を作成し、データを入れて交換します。以下のコードはそれを実現します。
public class MatrixTranspose {
public static void main(String[] args) {
int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
// 原始矩阵
System.out.println("原始矩阵:");
printMatrix(matrix);
// 转置矩阵
int[][] transposedMatrix = transposeMatrix(matrix);
System.out.println("转置矩阵:");
printMatrix(transposedMatrix);
}
// 打印矩阵
public static void printMatrix(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
// 转置矩阵
public static int[][] transposeMatrix(int[][] matrix) {
int rows = matrix.length;
int cols = matrix[0].length;
int[][] transposedMatrix = new int[cols][rows];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
transposedMatrix[j][i] = matrix[i][j];
}
}
return transposedMatrix;
}
}
まず、matrix行列を定義し、transposeMatrixメソッドを呼び出して行列の転置行列を取得します。transposeMatrixメソッドでは、まず元行列の行数と列数に基づいて新しい行列transposedMatrixを作成し、その後、二重ループによって元行列の要素を転置行列の対応する位置に代入しています。最後に、転置行列を返します。最後に、printMatrixメソッドを呼び出して元行列と転置行列を表示しています。