在做大数据或人工智能开发的过程做难免会遇到矩阵运算,本文在这里给大家实现一个简单的矩阵运算,请看下代码:
package test;
/**
* 矩阵运算
*
* @author Administrator
*
*/
public class MatrixOperation {
/**
* 自动填充矩阵,将不足的行后自动补0
*
* @param M
* @return
*/
public static int[][] fillMatrix(int[][] M) {
int ml = 0;// 最长行
for (int i = 0; i < M.length; i++) {
ml = ml < M[i].length ? M[i].length : ml;
}
int Nm[][] = new int[M.length][ml];
for (int i = 0; i < M.length; i++) {
for (int j = 0; j < M[i].length; j++) {
Nm[i][j] = M[i][j];
}
}
return Nm;
}
/**
* 矩阵乘法A*B
*
* @param A
* @param B
* @return
* @throws Exception
*/
public static int[][] multiplication(int[][] A, int[][] B) throws Exception {
// 先判断A矩阵的列是否等于B矩阵的行,A矩阵与B矩阵可以进行乘法运算的条件就是A的列数等于B的行数
A = fillMatrix(A);
B = fillMatrix(B);
if (A[0]