Necesito multiplicar matrices en java.. gracias
El tamaño de las matrices es ingresada por teclado, si alguien lo tiene resuelto, por favor responderme
| ||||
Cita: Solo es multiplicar dos matrices, filas por columnas m*n, y que me de como resultado una nueva matriz con los valores nuevos. gracias
Iniciado por elcarenalga Necesito multiplicar matrices en java.. gracias El tamaño de las matrices es ingresada por teclado, si alguien lo tiene resuelto, por favor responderme |
| ||||
Código PHP: Claro, se supone que las dos matrices a multiplicar tiene la misma cantidad de elemntos. Saludos
__________________ se despide hasta la proxima Gonzalo Castillo |
| |||
mira yo tengo uno hecho en mi casa ahura toy en la u y me da paja hacero ahura... mas rato kuando llegue por alla te envio el kodigo yap... si me olvido escribeme a [email protected] yap.. xaus |
| |||
ahi esta no lo pobre porke tengo desintalao el java import java.io.*; class multiplica{ static public void main(String[]args)throws IOException{ BufferedReader oa= new BufferedReader(new InputStreamReader(System.in)); System.out.println("ingrese numero filas pimera matriz:"); int fil1=Integer.parseInt(oa.readLine()); System.out.println("ingrese numero clumnas pimera matriz"); int colu1=Integer.parseInt(oa.readLine()); int fil2=fil1-1; while(fil2!=fil1){ System.out.println("ingrese numero de filas matriz 2"); fil2=Integer.parseInt(oa.readLine()); } System.out.println("ingrese numero columnas matriz 1"); int col2=Integer.parseInt(oa.readLine()); int [][] matriz1=new int[fil1][colu1]; int [][] matriz2=new int[fil2][col2]; int [][] resp=new int[fil1][col2]; for(int i=0;i<fil1;i++){ for(int j=0;j<colu1;j++){ System.out.println("ingrese un numero:"); matriz1[i][j]=Integer.parseInt(oa.readLine()); } } for(int i=0;i<fil2;i++){ for(int j=0;j<col2;j++){ System.out.println("ingrese un numero:"); matriz2[i][j]=Integer.parseInt(oa.readLine()); } } resp=multiplica(matriz1,matriz2,fil1,colu1,col2); for(int i=0;i<fil1;i++){ for(int j=0;j<col2;j++){ System.out.println(resp[i][j]+" "); }System.out.println(); } } public static int[][]multiplica(int a[][],int b[][],int c,int d ,int e){ int resp[][]=new int[c][e]; for(int i=0;i<c;i++){ for(int j=0;j<e;j++){ for(int k=0;k<d;k++){ resp[i][j]=a[i][k]*b[k][j]; } } } return resp; } } |
| |||
Re: Matrices En Java Cita: Es una irresponsabilidad hablar sobre un tema que no conoces, la multiplicación de matrices es algo mas que tu ejemplo.
Iniciado por goncafa Código PHP: Claro, se supone que las dos matrices a multiplicar tiene la misma cantidad de elemntos. Saludos Consulta esta tema: http://es.wikipedia.org/wiki/Producto_de_matrices |
| |||
Re: Matrices En Java Esto me huele a tarea.... busca primero---->Google!! |
| |||
Re: Matrices En Java import java.io.*; public class Main { static public int fil1 =0, fil2=0, col1=0, col2=0; static int [][] matriz1, matriz2,matrizres; static BufferedReader oa = new BufferedReader(new InputStreamReader(System.in)); static public void main(String[] args) throws IOException { ingresadatos(); If (fil1 != col2 || fil2 != col1) { System.out.println("error al asignar los tamaños de la matriz vuelva a intentarlo"); ingresadatos(); }else armarmatices(); System.out.println( "Resultante----->"); multmatrices(); } private static void multmatrices() { int i=0; int j=0; int k=0; matrizres= new int[fil1][col2]; for(i=0; i<fil1; i++) { for(j=0; j<col2; j++) { for(k=0; k<col1; k++) { matrizres[i][j]=matrizres[i][j]+(matriz1[i][k]*matriz2[k][j]); } } } for (i=0; i<fil1; i++) { for (j=0;j<col2;j++) { System.out.print(matrizres[i][j] + "--- "); } System.out.println(); } } private static void armarmatices() throws IOException { int i=0; int j=0; matriz1= new int[fil1][col1]; matriz2= new int[fil2][col2]; System.out.println("Ingrese valores primera matriz:"); for(i=0; i<fil1; i++) { for(j=0; j<col1; j++) { System.out.println("Ingrese valor"); matriz1[i][j]=Integer.parseInt(oa.readLine()); } } System.out.println("Ingrese valores segunda matriz:"); for(i=0; i<fil2; i++) { for(j=0; j<col2; j++){ System.out.println("Ingrese valor"); matriz2[i][j]=Integer.parseInt(oa.readLine()); } } } protected static void ingresadatos() throws IOException { fil1=0; fil2=0; col1=0; col2=0; System.out.println("Ingrese el numero de filas de la primera matriz"); fil1=Integer.parseInt(oa.readLine()); System.out.println("Ingrese el numero de columnas de la primera matriz"); col1=Integer.parseInt(oa.readLine()); System.out.println("Ingrese el numero de filas de la segunda matriz"); fil2=Integer.parseInt(oa.readLine()); System.out.println("Ingrese el numero de columnas de la segunda matriz"); col2=Integer.parseInt(oa.readLine()); } } /* esta es una pequeña variacion del que esta mas arriba, recuerda que para realizar la multiplicacion de matrices se debe cumplir que n=filas, m =columnas. entonces A nm * B nm se pude realizar si An = Bm, es decir que el numero de filas de la matriz A es igual al numero de columnas de la matriz B. eso si disculpen lo tozco del codigo pero hasta ahora esto y dando mis primeros pasos con java, pero el programa funciona, lo probé en NetBeans. Salu2 Alexm*/ |
| |||
Respuesta: Matrices En Java * ESPERO OS SIRVAIS * @author Jesus Rafael Moron * * OPERACIONES BASICAS PARA UNA MATRIZ DE NXN */ public class operacionesmatriz { double matrizA[][]; double matrizB[][]; double matrizR[][]; int n; public operacionesmatriz(int n){ matrizA = new double[n][n]; matrizB = new double[n][n]; matrizR = new double[n][n]; this.n = n; } public void setMatrizA(){ for(int i=0;i<n;i++) for(int j=0;j<n;j++){ this.matrizA[i][j] = this.getDatoInterfaz(i, j, 'A').isEmpty() ? 0 : Double.parseDouble(this.getDatoInterfaz(i, j, 'A')); } } public void setMatrizB(){ for (int i=0;i<n;i++) for(int j=0;j<n;j++){ this.matrizB[i][j] = this.getDatoInterfaz(i, j, 'B').isEmpty() ? 0 : Double.parseDouble(this.getDatoInterfaz(i, j, 'B')); } } public double [][] sumaM(){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ this.matrizR[i][j] = this.matrizA[i][j] + this.matrizB[i][j]; } } return matrizR; } public double [][] restaM(){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ this.matrizR[i][j] = this.matrizA[i][j] - this.matrizB[i][j]; } } return matrizR; } public double [][] multiplicaM(){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ this.matrizR[i][j] = this.matrizA[i][j] * this.matrizB[i][j]; } } return matrizR; } public double [][] divideM(){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if (this.matrizB[i][j] != 0) this.matrizR[i][j] = this.matrizA[i][j] / this.matrizB[i][j]; } } return matrizR; } public String getDatoInterfaz(int i, int j, char matriz){ if (i==0 && j==0){ if (matriz == 'A') return interfaz.jTextField4.getText(); if (matriz == 'B') return interfaz.jTextField20.getText(); if (matriz == 'R') return interfaz.jTextField36.getText(); } if (i==0 && j==1){ if (matriz == 'A') return interfaz.jTextField5.getText(); if (matriz == 'B') return interfaz.jTextField21.getText(); if (matriz == 'R') return interfaz.jTextField37.getText(); } if (i==0 && j==2){ if (matriz == 'A') return interfaz.jTextField6.getText(); if (matriz == 'B') return interfaz.jTextField22.getText(); if (matriz == 'R') return interfaz.jTextField38.getText(); } if (i==0 && j==3){ if (matriz == 'A') return interfaz.jTextField7.getText(); if (matriz == 'B') return interfaz.jTextField23.getText(); if (matriz == 'R') return interfaz.jTextField39.getText(); } if (i==1 && j==0){ if (matriz == 'A') return interfaz.jTextField8.getText(); if (matriz == 'B') return interfaz.jTextField24.getText(); if (matriz == 'R') return interfaz.jTextField40.getText(); } if (i==1 && j==1){ if (matriz == 'A') return interfaz.jTextField9.getText(); if (matriz == 'B') return interfaz.jTextField25.getText(); if (matriz == 'R') return interfaz.jTextField41.getText(); } if (i==1 && j==2){ if (matriz == 'A') return interfaz.jTextField10.getText(); if (matriz == 'B') return interfaz.jTextField26.getText(); if (matriz == 'R') return interfaz.jTextField42.getText(); } if (i==1 && j==3){ if (matriz == 'A') return interfaz.jTextField11.getText(); if (matriz == 'B') return interfaz.jTextField27.getText(); if (matriz == 'R') return interfaz.jTextField43.getText(); } if (i==2 && j==0){ if (matriz == 'A') return interfaz.jTextField12.getText(); if (matriz == 'B') return interfaz.jTextField28.getText(); if (matriz == 'R') return interfaz.jTextField44.getText(); } if (i==2 && j==1){ if (matriz == 'A') return interfaz.jTextField13.getText(); if (matriz == 'B') return interfaz.jTextField29.getText(); if (matriz == 'R') return interfaz.jTextField45.getText(); } if (i==2 && j==2){ if (matriz == 'A') return interfaz.jTextField14.getText(); if (matriz == 'B') return interfaz.jTextField30.getText(); if (matriz == 'R') return interfaz.jTextField46.getText(); } if (i==3 && j==0){ if (matriz == 'A') return interfaz.jTextField16.getText(); if (matriz == 'B') return interfaz.jTextField32.getText(); if (matriz == 'R') return interfaz.jTextField48.getText(); } if (i==3 && j==1){ if (matriz == 'A') return interfaz.jTextField17.getText(); if (matriz == 'B') return interfaz.jTextField33.getText(); if (matriz == 'R') return interfaz.jTextField49.getText(); } if (i==3 && j==2){ if (matriz == 'A') return interfaz.jTextField18.getText(); if (matriz == 'B') return interfaz.jTextField34.getText(); if (matriz == 'R') return interfaz.jTextField50.getText(); } return ""; } public void setDatoInterfaz(int i, int j, char matriz, double valor){ if (i==0 && j==0){ if (matriz == 'A') interfaz.jTextField4.setText(""+valor); if (matriz == 'B') interfaz.jTextField20.setText(""+valor); if (matriz == 'R') interfaz.jTextField36.setText(""+valor); } if (i==0 && j==1){ if (matriz == 'A') interfaz.jTextField5.setText(""+valor); if (matriz == 'B') interfaz.jTextField21.setText(""+valor); if (matriz == 'R') interfaz.jTextField37.setText(""+valor); } if (i==0 && j==2){ if (matriz == 'A') interfaz.jTextField6.setText(""+valor); if (matriz == 'B') interfaz.jTextField22.setText(""+valor); if (matriz == 'R') interfaz.jTextField38.setText(""+valor); } if (i==0 && j==3){ if (matriz == 'A') interfaz.jTextField7.setText(""+valor); if (matriz == 'B') interfaz.jTextField23.setText(""+valor); if (matriz == 'R') interfaz.jTextField39.setText(""+valor); } if (i==1 && j==0){ if (matriz == 'A') interfaz.jTextField8.setText(""+valor); if (matriz == 'B') interfaz.jTextField24.setText(""+valor); if (matriz == 'R') interfaz.jTextField40.setText(""+valor); } if (i==1 && j==1){ if (matriz == 'A') interfaz.jTextField9.setText(""+valor); if (matriz == 'B') interfaz.jTextField25.setText(""+valor); if (matriz == 'R') interfaz.jTextField41.setText(""+valor); } if (i==1 && j==2){ if (matriz == 'A') interfaz.jTextField10.setText(""+valor); if (matriz == 'B') interfaz.jTextField26.setText(""+valor); if (matriz == 'R') interfaz.jTextField42.setText(""+valor); } if (i==1 && j==3){ if (matriz == 'A') interfaz.jTextField11.setText(""+valor); if (matriz == 'B') interfaz.jTextField27.setText(""+valor); if (matriz == 'R') interfaz.jTextField43.setText(""+valor); } if (i==2 && j==0){ if (matriz == 'A') interfaz.jTextField12.setText(""+valor); if (matriz == 'B') interfaz.jTextField28.setText(""+valor); if (matriz == 'R') interfaz.jTextField44.setText(""+valor); } if (i==2 && j==1){ if (matriz == 'A') interfaz.jTextField13.setText(""+valor); if (matriz == 'B') interfaz.jTextField29.setText(""+valor); if (matriz == 'R') interfaz.jTextField45.setText(""+valor); } if (i==2 && j==2){ if (matriz == 'A') interfaz.jTextField14.setText(""+valor); if (matriz == 'B') interfaz.jTextField30.setText(""+valor); if (matriz == 'R') interfaz.jTextField46.setText(""+valor); } if (i==2 && j==3){ if (matriz == 'A') interfaz.jTextField15.setText(""+valor); if (matriz == 'B') interfaz.jTextField31.setText(""+valor); if (matriz == 'R') interfaz.jTextField47.setText(""+valor); } if (i==3 && j==0){ if (matriz == 'A') interfaz.jTextField16.setText(""+valor); if (matriz == 'B') interfaz.jTextField32.setText(""+valor); if (matriz == 'R') interfaz.jTextField48.setText(""+valor); } if (i==3 && j==1){ if (matriz == 'A') interfaz.jTextField17.setText(""+valor); if (matriz == 'B') interfaz.jTextField33.setText(""+valor); if (matriz == 'R') interfaz.jTextField49.setText(""+valor); } if (i==3 && j==2){ if (matriz == 'A') interfaz.jTextField18.setText(""+valor); if (matriz == 'B') interfaz.jTextField34.setText(""+valor); if (matriz == 'R') interfaz.jTextField50.setText(""+valor); } if (i==3 && j==3){ if (matriz == 'A') interfaz.jTextField19.setText(""+valor); if (matriz == 'B') interfaz.jTextField35.setText(""+valor); if (matriz == 'R') interfaz.jTextField51.setText(""+valor); } } } |
| |||
Respuesta: Matrices En Java Necesito multiplicar matrices en java.. gracias El tamaño de las matrices es ingresada por teclado, si alguien lo tiene resuelto, por favor responderme cual de los codigos seria el mas recomendado???????????????? |
| |||
Respuesta: Matrices En Java esta es una pequeña variacion del que esta mas arriba, recuerda que para realizar la multiplicacion de matrices se debe cumplir que n=filas, m =columnas. entonces A nm * B nm se pude realizar si An = Bm, es decir que el numero de filas de la matriz A es igual al numero de columnas de la matriz B. eso si disculpen lo tozco del codigo pero hasta ahora esto y dando mis primeros pasos con java, pero el programa funciona, lo probé en NetBeans. Salu2 import java.io.*; public class Main { static public int fil1 =0, fil2=0, col1=0, col2=0; static int [][] matriz1, matriz2,matrizres; static BufferedReader oa = new BufferedReader(new InputStreamReader(System.in)); static public void main(String[] args) throws IOException { ingresadatos(); If (fil1 != col2 || fil2 != col1) { System.out.println("error al asignar los tamaños de la matriz vuelva a intentarlo"); ingresadatos(); }else armarmatices(); System.out.println( "Resultante----->"); multmatrices(); } private static void multmatrices() { int i=0; int j=0; int k=0; matrizres= new int[fil1][col2]; for(i=0; i<fil1; i++) { for(j=0; j<col2; j++) { for(k=0; k<col1; k++) { matrizres[i][j]=matrizres[i][j]+(matriz1[i][k]*matriz2[k][j]); } } } for (i=0; i<fil1; i++) { for (j=0;j<col2;j++) { System.out.print(matrizres[i][j] + "--- "); } System.out.println(); } } private static void armarmatices() throws IOException { int i=0; int j=0; matriz1= new int[fil1][col1]; matriz2= new int[fil2][col2]; System.out.println("Ingrese valores primera matriz:"); for(i=0; i<fil1; i++) { for(j=0; j<col1; j++) { System.out.println("Ingrese valor"); matriz1[i][j]=Integer.parseInt(oa.readLine()); } } System.out.println("Ingrese valores segunda matriz:"); for(i=0; i<fil2; i++) { for(j=0; j<col2; j++){ System.out.println("Ingrese valor"); matriz2[i][j]=Integer.parseInt(oa.readLine()); } } } protected static void ingresadatos() throws IOException { fil1=0; fil2=0; col1=0; col2=0; System.out.println("Ingrese el numero de filas de la primera matriz"); fil1=Integer.parseInt(oa.readLine()); System.out.println("Ingrese el numero de columnas de la primera matriz"); col1=Integer.parseInt(oa.readLine()); System.out.println("Ingrese el numero de filas de la segunda matriz"); fil2=Integer.parseInt(oa.readLine()); System.out.println("Ingrese el numero de columnas de la segunda matriz"); col2=Integer.parseInt(oa.readLine()); } } |
| |||
Respuesta: Matrices En Java CREO QUE YA ES MUY TARDE PARA SEGUIR TOCANDO ESTE TEMA QUE COMENZO HACE 6 AÑOS PERO LOS CODIGOS HAN SIDO UN BUEN APORTE AQUI LES DEJO OTRO APORTE DE MI PARTE ESPERO QUE SIVA DE AYUDA SALUDOS public int[] multiplicar(int[] matrizUno, int[] matrizDos) { int[] matrizResultado = new int(matrizUno.length); for(int i = 0; i < matrizUno.length; i++) { matrizResultado[i] = matrizUno[i] * matrizDos[i]; } return matrizResultado; } |