Artículos
Java

Sumar matrices en Java

28/Jul/2010

Seguimos con los ejemplos de matrices, ahora que ya hemos visto como crear una matriz con Java. En este caso vamos a realizar la suma de dos matrices.

Para llevar a cabo el ejemplo hemos definido un método Java que nos permite sumar las matrices. La signatura de dicho método será la siguiente:

public static int[][] sumarmatrices (int[][] m1,int[][] m2) throws Exception {...}

Como podemos ver el método Java recibe dos matrices y devuelve una, que será el resultado de la misma. Por otro lado puede generar una Exception. Este caso será cuando las dimensiones de las matrices sean diferentes. Ya que cuando las dimensiones de las matrices son diferentes, estas no se pueden sumar.

Así la comprobación de las dimensiones de las matrices las haremos apoyándonos en la propiedad length:

if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){...}

En el caso de no coincidir los tamaños, es cuando elevamos la Exception.

if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){
  ...
} else
  throw new Exception();}

En caso afirmativo procederemos a sumar los elementos de las matrices. Hay que recordar que la suma de las matrices es la suma de todos sus elementos posición a posición. Por lo tanto la suma es sencilla. Solo tenemos que recorrer todos los elementos y dejar el resultado en la matriz destino.

Así, lo primero es crear una matriz resultado de las mismas dimensiones:

int[][] suma = new int[m1.length][m1[0].length];

Para recorrer los elementos nos apoyamos en un bucle for y, nuevamente, en la propiedad length.

for (int x=0; x < m1.length; x++) {
  for (int y=0; y < m1[x].length; y++) {				
    suma[x][y]=m1[x][y]+m2[x][y];								
  }
}

Ahora solo nos quedará devolver la matriz con el resultado de la suma.

 return suma;

Invocar el método es sencillo. Solo hay que tener en cuenta que puede soltar una Exception y por lo tanto lo deberemos de invocar desde un método try-catch

int [][] matriz1 = {{2,4,4},{6,6,9}};
int [][] matriz2 = {{2,4,4},{6,6,9}};
int [][] matriz = new int[3][3];
		
try {
  matriz = sumarmatrices(matriz1,matriz2);
  pintarmatriz(matriz);
} catch(Exception e){
  System.out.println("Matrices de diferente dimensión");
}

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Suscribir
Notificar de
guest
5 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios