import java.util.Random;
public class free {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
int[][] m = new int[3][2];//第一个矩阵
int[][] n = new int[2][4];//第二个矩阵
for (int i = 0; i < m.length; i++) {//随机生成
for (int j = 0; j < m[i].length; j++) {
m[i][j] = r.nextInt(10);
}
}
for (int i = 0; i < n.length; i++) {
for (int j = 0; j < n[i].length; j++) {
n[i][j] = r.nextInt(10);
}
}
int[][] x = new int[3][3];//表示相乘后的矩阵
for (int a = 0; a < n.length; a++) {//特别注意三层for循环中的判断条件
for (int b = 0; b < m[a].length; b++) {
for (int c = 0; c < m[a].length; c++) {
x[a][b] += m[a][c] * n[c][b];
}
}
}
for (int i = 0; i < m.length; i++) {//打印输出矩阵1
for (int j = 0; j < m[i].length; j++) {
System.out.print(m[i][j]);
if (j == m[i].length - 1) {
System.out.println();
} else {
System.out.print(" ");
}
}
}
System.out.println("----------------------------------------");//分隔符
for (int i = 0; i < n.length; i++) {//打印输出矩阵2
for (int j = 0; j < n[i].length; j++) {
System.out.print(n[i][j]);
if (j == n[i].length - 1) {
System.out.println();
} else {
System.out.print(" ");
}
}
}
System.out.println("----------------------------------------");
for (int i = 0; i < n.length; i++) {//打印输出相乘矩阵
for (int j = 0; j < m[i].length; j++) {
System.out.print(x[i][j]);
if (j == m[i].length - 1) {
System.out.println();
} else {
System.out.print(" ");
}
}
}
}
}
对行列不同的矩阵相乘的做法(主要是对三层for循环中的判断条件选择)
最新推荐文章于 2022-12-10 19:04:33 发布