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 dada flojera programarlo, pero como no encontré nada útil pues terminé programándolo yo. Y por eso dejo aquí el código del método:
public final class Matriz {
/**
* Multiplica dos matrices
* @param int[][] A
* @param int[][] B
* @return int[][] 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;
}
}
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 matrizA y matrizB ya están declaradas y son // diferente a <null> int matrizProducto[][] = Matriz.producto(matrizA, matrizB);
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.







7 Comentarios: