java

Java – Sumar filas y columnas de matriz

En este post de programación en Java con matrices te mostraré cómo sumar las filas de una matriz así como las columnas.

No solo vamos a sumar todos los elementos; vamos a sumar cada fila o cada columna de la matriz usando Java.

Formas de recorrer la matriz

Recuerda que antes de aprender a sumar debes saber recorrer la matriz. Primero se recorre cada fila de la matriz y luego cada elemento dentro de la fila, usando un ciclo for:

for (int y = 0; y < matriz.length; y++) {
    for (int x = 0; x < matriz[y].length; x++) {
        // Aquí tenemos al elemento
    }
}

Y si quisiéramos recorrer por columna sería así:

for (int x = 0; x < matriz[0].length; x++) {
    for (int y = 0; y < matriz.length; y++) {
      // Aquí magia...
    }
}

Fíjate que la diferencia está en que en este caso recorremos primero en X y luego dentro de ese ciclo recorremos dentro de Y. Además, asumimos que la matriz es cuadrada y que mide lo mismo en todos sus lados.

Suma de filas

Java – Sumar filas de matriz

Ahora que ya expliqué un poco de teoría veamos cómo sumar los renglones de una matriz en Java. Es simplemente recorrer e ir sumando.

Por cierto, también me he dado a la tarea de imprimir la matriz para mostrar el resultado de la suma.

static void sumaFilas(int[][] matriz) {
    for (int y = 0; y < matriz.length; y++) {
        int suma = 0;
        for (int x = 0; x < matriz[y].length; x++) {
            System.out.printf("%d ", matriz[y][x]);
            suma += matriz[y][x];
        }
        System.out.printf("= %d\n", suma);
    }
}

Como puedes ver es un simple recorrido en donde agregamos la suma al final de cada renglón o fila de la matriz.

Java – Sumar columnas de matriz

Suma de columnas de matriz en Java

Ahora veamos el otro enfoque. El algoritmo es muy similar al código Java visto anteriormente pero ahora vamos a sumar las columnas y colocar los resultados abajo.

El código queda de la siguiente manera:

static void sumaColumnas(int[][] matriz) {
    // Imprimir la matriz normalmente
    imprimirMatriz(matriz);
    // Debajo de ella imprimir una línea divisora
    for (int x = 0; x < matriz[0].length; x++) {
        System.out.print("___");
    }
    System.out.println();
    // Luego recorrer por columna y sumar
    for (int x = 0; x < matriz[0].length; x++) {
        int suma = 0;
        for (int y = 0; y < matriz.length; y++) {
            suma += matriz[y][x];
        }
        System.out.printf("%d ", suma);
    }
    System.out.println();
}

Además del código para realizar la suma estamos invocando a la función imprimirMatriz, pues debido a la forma en la que vamos a recorrerla, no podemos imprimirla desde el método como lo hicimos al sumar las filas.

Poniendo todo junto

Ya te mostré las cosas por separado. Es momento de mostrarte el código completo para sumar matrices en Java, o mejor dicho, sumar las filas y columnas de un arreglo bidimensional.

package me.parzibyte;
// https://parzibyte.me/blog

public class Main {

    static void imprimirMatriz(int[][] matriz) {
        for (int y = 0; y < matriz.length; y++) {
            for (int x = 0; x < matriz[y].length; x++) {
                System.out.printf("%d ", matriz[y][x]);
            }
            System.out.println();
        }
    }

    static void sumaFilas(int[][] matriz) {
        for (int y = 0; y < matriz.length; y++) {
            int suma = 0;
            for (int x = 0; x < matriz[y].length; x++) {
                System.out.printf("%d ", matriz[y][x]);
                suma += matriz[y][x];
            }
            System.out.printf("= %d\n", suma);
        }
    }

    static void sumaColumnas(int[][] matriz) {
        // Imprimir la matriz normalmente
        imprimirMatriz(matriz);
        // Debajo de ella imprimir una línea divisora
        for (int x = 0; x < matriz[0].length; x++) {
            System.out.print("___");
        }
        System.out.println();
        // Luego recorrer por columna y sumar
        for (int x = 0; x < matriz[0].length; x++) {
            int suma = 0;
            for (int y = 0; y < matriz.length; y++) {
                suma += matriz[y][x];
            }
            System.out.printf("%d ", suma);
        }
        System.out.println();
    }

    public static void main(String[] args) {
        // https://parzibyte.me/blog
        int[][] matriz = {
                {20, 12, 77},
                {50, 12, 89},
                {10, 44, 15},
        };
        System.out.println("La matriz es: ");
        imprimirMatriz(matriz);
        System.out.println("Suma de filas:");
        sumaFilas(matriz);
        System.out.println("Suma de columnas:");
        sumaColumnas(matriz);
    }
}

Te dejo con una guía para aprender más sobre Java totalmente gratis.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • for (int y = 0; y < matriz.length; y++) {
    for (int x = 0; x < matriz[y].length; x++) {
    // Aquí tenemos al elemento
    }
    }

    Por que matriz[y].length, que hace esa y?

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

3 días hace

Esta web usa cookies.