feed twitter facebook LinkedIn facebook

Java » Sumar matrices en Java

julio 28, 2010 por Víctor Cuervo 2 Comentarios Imprimir Imprimir

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. }
Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre Java
Foro sobre Java
tags: , , , , ,

Artículos relacionados:

2 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

  1. Mauricio
    agosto 3, 2010 #

    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.

  2. Anonimo
    noviembre 9, 2010 #

    Muy inutil

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*