📜  二维矩阵乘法 - Java (1)

📅  最后修改于: 2023-12-03 15:06:20.358000             🧑  作者: Mango

二维矩阵乘法 - Java

简介

二维矩阵乘法是计算机科学中的重要概念,在不同的领域有不同的应用,如图像处理、人工智能等。本文将介绍如何在Java中实现二维矩阵乘法操作。

算法

设矩阵A为n * m的矩阵,矩阵B为m * p的矩阵,矩阵C为n * p的矩阵。则矩阵C的元素可以表示为:

C_{i,j} = \sum_{k=1}^m A_{i,k} * B_{k,j}

其中,i表示C矩阵的行,j表示C矩阵的列,k表示A矩阵列和B矩阵行的交汇点。

代码实现
public class MatrixMultiplication {
    public static int[][] multiply(int[][] a, int[][] b) {
        int rowA = a.length;
        int colA = a[0].length;
        int rowB = b.length;
        int colB = b[0].length;

        if (colA != rowB) {
            throw new IllegalArgumentException("A矩阵的列数必须等于B矩阵的行数");
        }

        int[][] c = new int[rowA][colB];
        for (int i = 0; i < rowA; i++) {
            for (int j = 0; j < colB; j++) {
                for (int k = 0; k < colA; k++) {
                    c[i][j] += a[i][k] * b[k][j];
                }
            }
        }
        return c;
    }
}
用例
public class Main {
    public static void main(String[] args) {
        int[][] a = {{1, 2, 3}, {4, 5, 6}};
        int[][] b = {{7, 8}, {9, 10}, {11, 12}};
        int[][] c = MatrixMultiplication.multiply(a, b);

        for (int i = 0; i < c.length; i++) {
            for (int j = 0; j < c[0].length; j++) {
                System.out.print(c[i][j] + " ");
            }
            System.out.println();
        }
    }
}
总结

通过以上代码实现,我们可以非常方便的进行二维矩阵乘法运算。需要注意的是,A矩阵的列数必须等于B矩阵的行数,否则将会抛出异常。