两个矩阵相乘有问题

Having trouble multiplying two matrices

抱歉,这是一道作业题。我数学不好,所以我看了一些视频来了解两个矩阵是如何相乘的。我想出了一个公式,但我不知道我做错了什么?这个问题以前有人回答过,但是没看懂。谢谢。

    case 3:
          System.out.println("THE PRODUCT OF TWO MATRICES ARE: "); 

     for(i =0; i< arrayList.length; i++){
           for(j =0; j< arrayList1.length; j++){
             for(k =0; k < arrayList1.length;k++){
               multiplication = arrayList[i][k] * arrayList1[k][j] +  multiplication;

          }
          System.out.print(arrayList[i][j]+" ");    

        }

   System.out.println();
      }

    break;

首先你应该明白两个矩阵相乘应该得到一个矩阵(你的 multiplication 变量似乎不是这种情况)。

我想您必须编写基本实现程序。让我们看看下面的矩阵。

An 行和 m 列;说是一个矩阵n x m。 类似地,Bm 行和 p 列(m x p 矩阵)。 A x B 的乘法将得到一个矩阵 n x p.

请注意,如果要进行乘法 A x B,矩阵 A 的列数必须与矩阵 B 的行数相同。

现在矩阵 AB 中的每个值(第 ith 行和第 jth 列)计算如下:

也就是说,让我们看一下 Java 实现(这是数学公式的纯翻译)。

public static int[][] multiply(int[][] matrixA, int[][] matrixB) {
    int[][] result = new int[matrixA.length][matrixB[0].length];

    for (int i = 0; i < result.length; i++) {
        for (int j = 0; j < result[0].length; j++) {
            for (int k = 0; k < matrixB.length; k++) {
                result[i][j] += matrixA[i][k] * matrixB[k][j];
            }
        }
    }
    return result;
}

result 矩阵以正确的维度初始化。然后前两个嵌套循环(索引为 ij)将循环遍历结果矩阵的元素的所有元素。然后你只需要第三个循环来计算总和。

您仍然需要检查您作为参数提供的矩阵的长度是否正确。

使用的算法非常简单(O(n3) 复杂度)。如果您不理解它,网络上有很多资源可以解释它是如何工作的;但这更像是一个数学问题而不是编程问题。

希望对您有所帮助! :)