簡體   English   中英

在 java 中乘以 2 個不同大小的矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM