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