Java - Multiplicar dos matrices

 
Vista:

Multiplicar dos matrices

Publicado por Sirocco (2 intervenciones) el 29/11/2007 11:17:23
Hola amigos!, tengo un programa que tiene que multiplicar dos matrices creadas aleatoriamente y no se como hacer la matriz resultante. os dejo el codigo para que lo veais y haber si me podeis echar una manita.Se que va con bucles for pero no se como ponerlos para que recorra las filas por columnas. Gracias anticipadas. un saludo!

CODIGO (es en JBuilder):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.io.*;
 
public class MultiplicaMatrices {
 
  public static void main(String[] args)throws IOException {
    final int FILAS =4;
    final int COLUMNAS = 3;
    int [][] a = new int [FILAS][COLUMNAS]; //porque es una matriz de dos dimensiones (3x3)
    int [][] b = new int [FILAS][COLUMNAS]; //porque es una matriz de dos dimensiones (3x3)
    int [][] c = new int [FILAS][COLUMNAS];//porque la matriz resultado es dos dimensiones (3x3)
 
    final int BASE = 1;
    final int RANGO = 10;
//leer los datos
    for (int fila = 0; fila < FILAS; ++fila)   // fila tambien la podemos llamar i
      for (int columna = 0; columna < COLUMNAS ; ++columna){   // columna tambien podemos llamar j
        a[fila][columna]=(int)(Math.random()*RANGO + BASE);
        b[fila][columna]=(int)(Math.random()*RANGO + BASE);
     }
//dibujar la matriz
    for (int fila = 0; fila < FILAS ; ++fila){
      for (int columna = 0; columna < COLUMNAS ; ++columna)
       System.out.print (a[fila][columna] + " ");
       System.out.println();   // para que pase a la siguiente linea y no salga todos los numeros juntos
    }
 
   System.out.println();
//dibujar la matriz 2
    for (int fila = 0; fila < FILAS ; ++fila){
      for (int columna = 0; columna < COLUMNAS; ++columna)
       System.out.print (b[fila][columna] + " ");
       System.out.println();   // para que pase a la siguiente linea y no salga todos los numeros juntos
    }
//Multiplicar las dos matrices.
    for (                          //NO SE COMO HACERLE.
 
//Dibujamos la matriz resultante.
 System.out.println();
    for (int fila=0;fila<FILAS;++fila){
      for (int columna = 0; columna < COLUMNAS ; ++columna)
        System.out.print (c[fila][columna] + " ");
        System.out.println();
    }
  System.out.println ("
Pulsar INTRO para terminar");
    System.in.read();
  }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Multiplicar dos matrices

Publicado por JF Camilo Andres (1 intervención) el 30/11/2009 00:53:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import java.util.Random;
import java.util.Scanner;
 
public class MultiplicacionAleatoria {
 
	public static void main (String args[]){
 
		  Random r=new Random();
	      Scanner in=new Scanner(System.in);
 
	        System.out.println("ingrese numero de filas de la primera matriz");
	       int x1=in.nextInt();
	        System.out.println("ingrese numero de columnas de la primera matriz");
	       int z1=in.nextInt();
	        System.out.println("ingrese numero de filas de la segunda matriz");
	       int x2=in.nextInt();
	        System.out.println("ingrese numero de columnas de la segunda matriz");
	       int z2=in.nextInt();
 
	       int[][] m1=new int[x1][z1];
	       int[][] m2=new int[x2][z2];
	       int[][] mR=new int[x1][z2];
	        System.out.println("La matriz 1");
 
 
	        for(int i=0;i<x1;i++){
	            System.out.print("[ ");
	            for(int j=0;j<z1;j++){
	                m1[i][j]=r.nextInt(9);
	                System.out.print(m1[i][j]+" ");
	            }
	            System.out.print("]");
	            System.out.println("");
	        }
	        System.out.println("La matriz 2");
	        for(int i=0;i<x2;i++){
	            System.out.print("[ ");
	            for(int j=0;j<z2;j++){
	                m2[i][j]=r.nextInt(9);
	                System.out.print(m2[i][j]+" ");
	            }
	            System.out.print("]");
	            System.out.println("");
	        }
 
	        if(z1==x2){
	            System.out.println("La matriz resultante es: ");
 
	            for(int i=0;i<x1;i++){
 
	            	System.out.print("[ ");
 
	            for(int j=0;j<z2;j++){
 
 
	            for(int h=0;h<z1;h++){
 
	            	 mR[i][j]+=m1[i][h]*m2[h][j];
                }
                System.out.print(mR[i][j]+" ");
            }
            System.out.print("]");
            System.out.println("");
        }
    }
    else{
        System.out.println("Los rangos de las matrices son incorrectos");
    }
}
 
	}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Multiplicar dos matrices

Publicado por Edgar Laz (1 intervención) el 18/06/2017 01:51:08
Muchas Gracias me sirvió bastante este codigo!! Funciona Perfectamente!!! C:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Multiplicar dos matrices

Publicado por brandon (1 intervención) el 17/11/2017 07:10:42
Muchas gracias por el aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Multiplicar dos matrices

Publicado por gabriel (1 intervención) el 25/06/2021 02:53:16
porque no me funciona en mi bloc de notas con html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar