Sumar matrices en Java

28/Jul/2010 Java , , , , , 2 Comentarios

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:

  1. 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:

  1. 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.

  1. if ((m1.length == m2.length) && (m1[0].length==m2[0].length)){
  2. ...
  3. } else
  4. 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:

  1. 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.

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

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

  1. 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

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

Vídeos sobre Java


2 comentarios en “Sumar matrices en Java”

Víctor Cuervo

anonimo

me dejaron un trabajo el cual tengo que hacer una matriz (la cantidad de columnas y filas las coloco por teclado), el cual tengo que colocar por teclado los elementos(numeros) y posteriormente sacar el numero mayor y de ese numero mayor calcular la fila en que esta y sumar los numeros que se encuentren en esa fila del numero mayor

Víctor Cuervo

Mauricio

Hola,

En el main, la variable de la matriz resultado (“matriz”) esta demás y es inconveniente inicializarla, esto debido a que en el método (“sumarmatrices”) la estas creando, es inconveniente por que reservas memoria que no va a ser usada.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*