欢迎访问宙启技术站
智能推送

Java函数实现二维矩阵相乘

发布时间:2023-07-04 16:43:08

要实现二维矩阵的相乘, 首先需要了解矩阵相乘的基本原理。假设有两个矩阵A和B,它们分别是m行n列和n行p列,相乘结果为一个新的矩阵C,C是m行p列。

矩阵相乘的运算规则如下:

- 矩阵C中的每个元素C[i][j]等于矩阵A的第i行与矩阵B的第j列对应位置元素相乘后的累加和。

下面是Java函数实现二维矩阵相乘的代码:

public static int[][] matrixMultiplication(int[][] matrixA, int[][] matrixB) {
    int m = matrixA.length;
    int n = matrixA[0].length;
    int p = matrixB[0].length;
    
    int[][] result = new int[m][p];

    for (int i = 0; i < m; i++) {
        for (int j = 0; j < p; j++) {
            int sum = 0;
            for (int k = 0; k < n; k++) {
                sum += matrixA[i][k] * matrixB[k][j];
            }
            result[i][j] = sum;
        }
    }

    return result;
}

这个函数接受两个参数,分别是待相乘的两个矩阵,并返回相乘结果。

首先在函数内部获取矩阵A和B的行数m和n,以及矩阵B的列数p。然后创建一个结果矩阵result,它的大小为m行p列。

接下来使用嵌套的循环遍历矩阵A的每一行和矩阵B的每一列,对应位置元素相乘并累加得到结果矩阵C的每个元素。

最后返回结果矩阵C。

可以通过以下示例代码测试函数的实现:

public static void main(String[] args) {
    int[][] matrixA = {{1, 2, 3}, {4, 5, 6}};
    int[][] matrixB = {{7, 8}, {9, 10}, {11, 12}};
    
    int[][] result = matrixMultiplication(matrixA, matrixB);
    
    for (int[] row : result) {
        for (int element : row) {
            System.out.print(element + " ");
        }
        System.out.println();
    }
}

输出结果为:

58  64 
139 154

这个结果矩阵C的大小为2行2列,分别对应着矩阵A和B的相乘结果。