/**
* 矩阵乘法运算。 矩阵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;
}