Javaで行列の転置を実現する方法は何ですか?
行列を入れ替えるには、行列を表す二次元配列を使用し、適切な操作を行います。以下は、Javaのコード例です:
public class MatrixTranspose {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int rows = matrix.length;
int columns = matrix[0].length;
int[][] transpose = new int[columns][rows];
// 转置矩阵
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
transpose[j][i] = matrix[i][j];
}
}
// 打印转置后的矩阵
for (int i = 0; i < columns; i++) {
for (int j = 0; j < rows; j++) {
System.out.print(transpose[i][j] + " ");
}
System.out.println();
}
}
}
結果は出力されます:
1 4 7
2 5 8
3 6 9
コード内では、最初に元の行列を示す2次元配列matrixが定義されます。次に、行数と列数をそれぞれ rows と columns で取得します。その後、転置された行列を格納する新しい2次元配列transposeが作成されます。
ネストされたforループを使用して、元の行列の各要素を反転行列の対応する位置に代入します。最後に、再度ネストされたforループを使用して、反転後の行列を出力します。
これにより、行列の転置が実現されました。