【发布时间】:2016-04-08 20:38:55
【问题描述】:
此代码应该将两个矩阵相乘。这是一个家庭作业,我得到了 100 分,因为我的朋友帮了我。
但我试图真正了解它是如何工作的,但由于某种原因我一直感到困惑。我真的不明白第三个 for 循环在做什么。
int mA = matrix1.length;
int nA = matrix1[0].length;
int mB = matrix2.length;
int nB = matrix2[0].length;
if (nA != mB){
return null;
double[][] C = new double[mA][nB];
for (int i = 0; i < mA; i++)
for (int j = 0; j < nB; j++)
for (int k = 0; k < nA; k++)
C[i][j] += matrix1[i][k] * matrix2[k][j];
return C;
【问题讨论】:
-
我认为这不是一个真正的编程问题,而是一个数学问题。第三个循环只是说位置 k,l 的新矩阵 (C) 将具有 A 的一个向量和 B 的一个向量的标量积的值。如果你画出来你就会明白
标签: java loops multidimensional-array nested-loops matrix-multiplication