Bueno hoy me vi en la necesidad de hacer una multiplicación de matrices en Java, las matrices no necesariamente son cuadradas pero obviamente deben cumplir con la propiedad de: Número de filas de la primera debe ser igual al número de columnas de la segunda…
Total que busqué un algoritmo o método ya hecho para solo copiar y pegar pues me daba flojera programarlo, pero como no encontré nada útil pues terminé programándolo yo. Y por eso dejo aquí el código de la clase y el método:
public final class Matriz {
/**
* Multiplica dos matrices
* @param int[][] Matriz A
* @param int[][] Matriz B
* @return int[][] Matriz producto
*/
private static int[][] producto(int A[][], int B[][]){
int suma = 0;
int result[][] = new int[A.length][B.length];
for(int i = 0; i < A.length; i++){
for(int j = 0; j < B.length; j++){
suma = 0;
for(int k = 0; k < B.length; k++){
suma += A[i][k] * B[k][j];
}
result[i][j] = suma;
}
}
return result;
}
}
Lenguaje del código: Java (java)
El método es estático pues está dentro de una clase final (no instanciable ni extendible). De modo que para hacer una multiplicación solo basta con:
// Se asume que matriz A y matriz B ya están declaradas y son diferente a null
int matrizProducto[][] = Matriz.producto(matrizA, matrizB);
Lenguaje del código: Java (java)
Esta clase solo funciona para datos de tipo Integer, si lo necesitas en Float
o Double
, solo es cuestión de cambiar la declaración del método en el código y de las variables locales suma
y result
. Espero que a más de uno le sirvan así como les sirvieron tambien los scripts para resolver matrices con el método de Gauss en PHP.