【课堂练习:矩阵转置】
已知一个二维数组A 表示一个矩阵,求AT。 其中,AT 表示矩阵的转置。 矩阵转置的含义:表示把一个矩阵行列互换。例如, 有下面的矩阵M 以及其转置MT:
要求:输入二维数组A 表的矩阵的行数和列数,并输入矩阵的数据,矩阵转置后的结果并打印输出。
运行代码:
import java.util.Scanner;
public class JuZhenZhuanZhi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入矩阵的行数:");
int n = sc.nextInt();//矩阵的行数
System.out.println("请输入矩阵的列数:");
int m = sc.nextInt();//矩阵的列数
//1. 声明数组
int[][] arrayA;
int[][] arrayAT;
//2. 创建数组对象
arrayA = new int[n][m];
arrayAT = new int[m][n];
//3. 使用输入值初始化数组arrayA
for (int i = 0; i < arrayA.length; i++) {
//使用外循环控制行数
System.out.println("请输入第"+(i+1)+"行的数据:");
for (int j = 0; j < arrayA[1].length; j++) {
//使用内循环控制列数
arrayA[i][j] = sc.nextInt();
}
}
System.out.println("矩阵转置:");
//4. 矩阵转置,本质是数组的复制,不过行和列互换
for (int i = 0; i < arrayA.length; i++) {
for (int j = 0; j < arrayA[i].length; j++) {
arrayAT[j][i] = arrayA[i][j];//转置
}
}
//5. 打印输出二维数组arrayAT
for (int i = 0; i < arrayAT.length; i++) {
for (int j = 0; j < arrayAT[i].length; j++) {
System.out.print(arrayAT[i][j]+"\t");
}
System.out.println();//换行
}
}
}