Java中二维矩阵乘法的问题

卡贝斯沃赫拉

我的Java函数之一遇到了问题,该函数应该将2个双精度数组作为矩阵相乘。

    public static double[][] matrixMultiply(double[][] m, double[][] n) {
    double[][] multipliedMatrix = new double [m.length][n[0].length];
    for (int i=0; i<m.length-1; i++)
    {
      for (int j=0; j<n[0].length-1; j++)
      {
        for (int k=0; k<n.length-1; k++)
        {
        multipliedMatrix[i][j] = multipliedMatrix[i][j] + (m[i][k] * n[k][j]);
        }
      }
    }
    return multipliedMatrix;
  }

i变量应该在for循环中循环遍历m的每个元素(第一个矩阵)。假设j变量循环通过第二矩阵n的每一行,变量k循环遍历第一矩阵的第一行和第二矩阵的第一列。当输入时,这似乎无法正常工作

[[1.0, 2.0, 3.0, 4.0], 
 [5.0, 6.0, 7.0, 8.0], 
 [9.0, 1.0, 2.0, 3.0]], 

[[1.0, 2.0, 3.0], 
 [4.0, 5.0, 6.0], 
 [7.0, 8.0, 9.0], 
 [1.0, 2.0, 3.0]] 

它发出

[[30.0, 36.0, 0.0], 
 [78.0, 96.0, 0.0], 
 [0.0, 0.0, 0.0]] 

而不是

[[34.0, 44.0, 54.0], 
 [86.0, 112.0, 138.0], 
 [30.0, 45.0, 60.0]]. 

我不明白为什么会这样?

尼尔·阿尔法西

固定:

     public static double[][] matrixMultiply(double[][] m, double[][] n) {
        double[][] multipliedMatrix = new double [m.length][n[0].length];
        for (int i=0; i<m.length; i++)
        {
            for (int j=0; j<n[0].length; j++)
            {
                for (int k=0; k<n.length; k++)
                {
                    multipliedMatrix[i][j] = multipliedMatrix[i][j] + (m[i][k] * n[k][j]);
                }
            }
        }
        return multipliedMatrix;
    }

输出值

34.044.054.0
86.0112.0138.0
30.045.060.0

解释
在每个循环中,您应该在索引小于长度-不小于长度-1的情况下运行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C中二维数组的Typedef

来自分类Dev

Javascript / Google Apps脚本中二维数组的长度

来自分类Dev

如何计算java中二维数组中对角线之后的元素之和?

来自分类Dev

c中二维数组中的随机值

来自分类Dev

R中的二维数组列表上的矩阵乘法

来自分类Dev

Scala中的二维数组乘法

来自分类Dev

更新Aurelia中二维数组的视图

来自分类Dev

二维数组的numpy列表乘法

来自分类Dev

列表中二维数组元素的plt.scatter

来自分类Dev

Python中二维数组的对数

来自分类Dev

Django中二维数组的解决方法

来自分类Dev

从矩阵制作二维二维图

来自分类Dev

二维Java数组递增问题

来自分类Dev

C中二维数组的Typedef

来自分类Dev

Java中二维矩阵乘法的问题

来自分类Dev

用Java递归填充矩阵(二维数组)

来自分类Dev

如何乘以二维数组?矩阵乘法

来自分类Dev

R中二维矩阵的指标和值

来自分类Dev

Java中二维数组的总和

来自分类Dev

Python中二维数组的递归算法

来自分类Dev

Matlab中二维矩阵的双线性和三次三次插值

来自分类Dev

二维if / then矩阵

来自分类Dev

lix剂中二维列表的排列

来自分类Dev

Java中二维数组中每个维度的长度

来自分类Dev

java - 如何以降序显示Java中二维数组内一维数组中的单元格?

来自分类Dev

使用numpy中的标量乘法对二维矩阵进行归一化

来自分类Dev

JavaScript 中二维数组的切片/部分

来自分类Dev

在java中打印二维矩阵

来自分类Dev

c#中二维数组的集合