Java矩阵乘法

Java矩阵乘法,java,matrix-multiplication,Java,Matrix Multiplication,我正在为一个类编写一个程序,在这个类中,我们在驱动程序类中硬编码矩阵,并将矩阵运算放在矩阵类中。我遇到了一个错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:2 我很确定这是第二个for循环,但我想不出应该在什么范围内引用driver类中硬编码矩阵的列 row和col都是在Matrix类中实例化的,我修复了j++但是它仍然给出了相同的错误,例如,当我用1x2乘以2x3时 谢谢 public Matrix mult(Matrix

我正在为一个类编写一个程序,在这个类中,我们在驱动程序类中硬编码矩阵,并将矩阵运算放在矩阵类中。我遇到了一个错误:

线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:2

我很确定这是第二个for循环,但我想不出应该在什么范围内引用driver类中硬编码矩阵的列

row和col都是在Matrix类中实例化的,我修复了j++但是它仍然给出了相同的错误,例如,当我用1x2乘以2x3时

谢谢

public Matrix mult(Matrix m) {
    // TODO: Multiply the two matrices, store the value
    // in a new matrix and return that matrix


    Matrix m5 = new Matrix(new int[row][col]);

    for (int i = 0; i < row; i++) {
        for (int j = 0; j < m.myMatrix[0].length; j++) {
            for (int k = 0; k < col; k++) {

                m5.myMatrix[i][j] += myMatrix[i][k] * m.myMatrix[k][j];

            }

        }

    }

    return m5;
}
公共矩阵mult(矩阵m){
//TODO:将两个矩阵相乘,存储值
//在一个新的矩阵中,并返回该矩阵
矩阵m5=新矩阵(新整数[行][列]);
对于(int i=0;i
我看不到row和col在任何地方被实例化,所以我猜您正在使用Matrix类的成员变量。生成的矩阵不应与原始矩阵大小相同,除非它们都是平方矩阵。例如,如果将4X2矩阵乘以2X3矩阵,则应得到4X3矩阵。提供了一个例子。

第二个循环的增量部分必须是
j++
而不是
i++
您的错误是因为您使用大小
row x col
初始化了
m5,并将其分配给
m5.myMatrix[i][j]
,因此
i
应该循环
row
次,而且
j
应该循环
col
次,但是循环那么多次的不是
k
而不是
j
。您似乎混淆了循环变量。