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的相乘结果。
