/** * 矩阵乘法运算。 矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。 * 若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵 C[i][j] = * ("A[i][k] * B[k][j]"的累加) * * @param b * 乘数 * @return */ public Matrix multiply(Matrix b) { if (b == null) { return null; } Matrix c = null; double[][] bData = b.getMatrixData(); if (this.matrixData[0].length != bData.length) { System.out.println("做乘法时矩阵a的列数要与b的行数相等!"); return c; } // 结果矩阵的数据,结果矩阵的行数为a的行数,列数为b的列数 int cRow = this.matrixData.length; int cColumn = bData[0].length; double[][] cData = new double[cRow][cColumn]; for (int i = 0; i < cRow; i++) { for (int j = 0; j < cColumn; j++) { cData[i][j] = 0; for (int k = 0; k < this.matrixData[0].length; k++) { cData[i][j] += this.matrixData[i][k] * bData[k][j]; } } } c = new Matrix(cData); return c; }