Multiplicacion de Matrices en java

Ultima actualización en domingo 13º mar. 2022

Multiplicacion de Matrices en Java

En este programa, aprenderás a multiplicar dos matrices usando una función en Java.

Para entender este ejemplo, usted debe tener el conocimiento de la Java Arrays.

	public class MultiplicarMatrices {

  public static void main(String[] args) {
    int r1 = 2, c1 = 3;
    int r2 = 3, c2 = 2;
    int[][] primeroMatriz = { { 4, -1, 7},{ 3, 0, 5} };
    int[][] segundoMatriz = { { 4, 5 }, { -3, 0 }, { 0, 5} };

    int[][] product = multiplicarMatrices(primeroMatriz, segundoMatriz, r1, c1, c2);

    displayProduct(product);
  }

  public static int[][] multiplicarMatrices(int[][] primeroMatriz, int[][] segundoMatriz, int r1, int c1, int c2) {
    int[][] product = new int[r1][c2];
    for (int i = 0; i < r1; i++) {
      for (int j = 0; j < c2; j++) {
        for (int k = 0; k < c1; k++) {
          product[i][j] += primeroMatriz[i][k] * segundoMatriz[k][j];
        }
      }
    }

    return product;
  }

  public static void displayProduct(int[][] product) {
    System.out.println("El producto de dos matrices es: ");
    for (int[] row: product) {
      for (int column: row) {
        System.out.print(column + "    ");
      }
      System.out.println();
    }
  }
}
	
	El producto de dos matrices es: 
19    55    
12    40    
	

Multiplicacion de Matrices Java

Uso de For Loop

	import java.util.Scanner;
public class Main {
  public static void main(String args[]) {
    int r1, r2, c1, c2, i, j, k, sum;
    Scanner in = new Scanner(System.in);

    System.out.println("Introduzca el numero de filas de la matriz 1");
    r1 = in .nextInt();

    System.out.println("Introduzca el numero de columnas de la matriz 1");
    c1 = in .nextInt();
    System.out.println("Introduzca el numero de filas de la matriz 2");
    r2 = in .nextInt();

    System.out.println("Introduzca el numero de columnas de la matriz 2");
    c2 = in .nextInt();

    if (c1 == r2) {

      int mat1[][] = new int[r1][c1];
      int mat2[][] = new int[r2][c2];
      int res[][] = new int[r1][c2];

      System.out.println("Introduzca los elementos de la matriz 1");

      for (i = 0; i < r1; i++) {

        for (j = 0; j < c1; j++)
          mat1[i][j] = in .nextInt();

      }
      System.out.println("Introduzca los elementos de la matriz 2");

      for (i = 0; i < r2; i++) {

        for (j = 0; j < c2; j++)
          mat2[i][j] = in .nextInt();

      }

      System.out.println("nnoutput matrix:-");
      for (i = 0; i < r1; i++)

        for (j = 0; j < c2; j++) {
          sum = 0;
          for (k = 0; k < r2; k++) {
            sum += mat1[i][k] * mat2[k][j];

          }
          res[i][j] = sum;
        }
      for (i = 0; i < r1; i++) {
        for (j = 0; j < c2; j++)
          System.out.print(res[i][j] + " ");

        System.out.println();
      }
    } else
      System.out.print("no existe");
  }
}
	
	Introduzca el numero de filas de la matriz 1  :
3
Introduzca el numero de columnas de la matriz 1 :
3
Introduzca el numero de filas de la matriz 2 :
3
Introduzca el numero de columnas de la matriz 2 :
3
Introduzca los elementos de la matriz 1 :
1 2 3 4 5 6 7 8 9
Introduzca los elementos de la matriz 2 :
9 8 7 6 5 4 3 2 1

output matrix:-
30 24 18 
84 69 54 
138 114 90 
	

Multiplicar matrices Java

Uso de While Loop

	import java.util.Scanner;

public class Main {
  public static void main(String args[]) {
    int r1, r2, c1, c2, i, j, k, sum;
    Scanner in = new Scanner(System.in);

    System.out.println("Introduzca el numero de filas de la matriz 1  :");
    r1 = in .nextInt();

    System.out.println("Introduzca el numero de columnas de la matriz 1 :");
    c1 = in .nextInt();
    System.out.println("Introduzca el numero de filas de la matriz 2 :");
    r2 = in .nextInt();

    System.out.println("Introduzca el numero de columnas de la matriz 2 :");
    c2 = in .nextInt();

    if (c1 == r2) {

      int mat1[][] = new int[r1][c1];
      int mat2[][] = new int[r2][c2];
      int res[][] = new int[r1][c2];

      System.out.println("Introduzca los elementos de la matriz 1 :");

      i = 0;
      while (i < r1) {

        j = 0;
        while (j < c1)

        {
          mat1[i][j] = in .nextInt();
          j++;
        }
        i++;
      }
      System.out.println("Introduzca los elementos de la matriz 2 :");

      i = 0;
      while (i < r2) {

        j = 0;
        while (j < c2)

        {
          mat2[i][j] = in .nextInt();
          j++;
        }
        i++;
      }

      System.out.println("nnOriginal   matrix:-");
      i = 0;
      while (i < r1) {

        j = 0;
        while (j < c2) {
          sum = 0;
          k = 0;
          while (k < r2) {
            sum += mat1[i][k] * mat2[k][j];
            k++;
          }
          res[i][j] = sum;
          j++;
        }
        i++;
      }
      i = 0;
      while (i < r1) {
        j = 0;
        while (j < c2) {
          System.out.print(res[i][j] + " ");
          j++;
        }
        System.out.println();
        i++;
      }
    } else
      System.out.print("no existe ");
  }
}
	
	Introduzca el numero de filas de la matriz 1  :
3
Introduzca el numero de columnas de la matriz 1 :
3
Introduzca el numero de filas de la matriz 2 :
3
Introduzca el numero de columnas de la matriz 2 :
3
Introduzca los elementos de la matriz 1 :
8 9 7 6 4 5 3 1 2
Introduzca los elementos de la matriz 2 :
4 5 6 8 7 2 1 9 3

Original   matrix:-
111 166 87 
61 103 59 
22 40 26