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]]. 

我不明白为什么会这样?

尼尔·阿尔法西(Nir Alfasi)

使固定:

     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

Java中二维矩阵乘法的问题

来自分类Dev

Java中二维数组的总和

来自分类Dev

R中二维矩阵的指标和值

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在java中打印二维矩阵

来自分类Dev

二维if / then矩阵

来自分类Dev

C中二维数组的Typedef

来自分类Dev

Python中二维数组的对数

来自分类Dev

C中二维数组的Typedef

来自分类Dev

二维Java数组递增问题

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Scala中的二维数组乘法

来自分类Dev

二维数组的numpy列表乘法

来自分类Dev

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

来自分类Dev

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

来自分类Dev

从矩阵制作二维二维图

来自分类Dev

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

来自分类Dev

更新Aurelia中二维数组的视图

来自分类Dev

c中二维数组中的随机值

来自分类Dev

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

来自分类Dev

Django中二维数组的解决方法

来自分类Dev

Python中二维数组的递归算法

来自分类Dev

lix剂中二维列表的排列

来自分类Dev

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

来自分类Dev

c#中二维数组的集合