0
我想寫一個方法,將兩個矩陣相乘並返回一個二維數組與產生的結果。例如,第一個矩陣是5 x 2,第二個矩陣是2 x 5.結果矩陣應該分別是5 x 5矩陣。乘以二維數組ArrayIndexOutOfBoundsException? (Java)
這是我到目前爲止有:
public static int[][] multiplyArrays(int[][] arrayA, int[][] arrayB) {
int[][] arrayProduct = new int[arrayA.length][arrayB[0].length];
for (int cRow = 0; cRow < arrayA.length; cRow++) {
for (int dCol = 0; dCol < arrayB[0].length; dCol++) {
for (int i = 0; i < arrayB[0].length; i++) {
arrayProduct[cRow][dCol] += arrayA[cRow][i] * arrayB[i][dCol];
}
}
}
}
每當我捉迷藏這個代碼,它不斷給我一個例外,說ArrayIndexOutOfBoundsException異常:2?
我的代碼中的邏輯有什麼問題?
任何幫助,非常感謝!
編輯:該代碼的固定的版本將是
public static int[][] multiplyArrays(int[][] arrayA, int[][] arrayB) {
int[][] arrayProduct = new int[arrayA.length][arrayB[0].length];
for (int cRow = 0; cRow < arrayA.length; cRow++) {
for (int dCol = 0; dCol < arrayB[0].length; dCol++) {
for (int i = 0; i < arrayA[0].length; i++) {**
arrayProduct[cRow][dCol] += arrayA[cRow][i] * arrayB[i][dCol];
}
}
}
}
我意有所指在我的代碼方式中忽略了太多。非常感謝你的幫助! – bestgio