[英]multiplying 2 matrices of different sizes in java
我正在嘗試將一個矩陣乘以另一個不同大小的矩陣。 第一個矩陣是 4 x 2,第二個矩陣是 2 x 2。目前,這個乘法產生的答案是我的程序不正確。 請幫忙。
public class MatrixCipher {
public static void main(String[] args) {
int[][] matrix = new int[4][2];
int[][] matrix2 = new int[2][2];
matrix2[0][0] = 1;
matrix2[0][1] = 2;
matrix2[1][0] = 3;
matrix2[1][1] = 4;
int[][] product = new int[4][2];
for (int m = 0; m < 4; m++) {
for (int n = 0; n < 2; n++) {
matrix[m][n] = (int) (6 * Math.random() + 1);
}
}
System.out.print("==1==");
System.out.println(" ");
for (int m = 0; m < 4; m++) {
for (int n = 0; n < 2; n++) {
System.out.print(matrix[m][n] + " ");
}
System.out.println(" ");
}
System.out.print("=====");
System.out.println("");
System.out.println(" x");
System.out.print("==2==");
System.out.println(" ");
for (int m = 0; m < 2; m++) {
for (int n = 0; n < 2; n++) {
System.out.print(matrix2[m][n] + " ");
}
System.out.println(" ");
}
System.out.print("=====");
System.out.println("");
System.out.println(" =");
for (int m = 0; m < 4; m++) {
for (int n = 0; n < 2; n++) {
for (int f = 0; f < 2; f++) {
product[m][n] = matrix[m][n] * matrix2[f][n];
}
}
}
System.out.print("=====");
System.out.println(" ");
for (int m = 0; m < 4; m++) {
for (int n = 0; n < 2; n++) {
System.out.print(product[m][n] + " ");
}
System.out.println(" ");
}
System.out.print("=====");
System.out.println("");
}
}
您錯過了整個加法部分並在乘法過程中使用了錯誤的順序。
for (int m = 0; m < 4; m++) {
for (int n = 0; n < 2; n++) {
for (int f = 0; f < 2; f++) {
product[m][n] = product[m][n] + matrix[m][f] * matrix2[f][n];
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.