Foros del Web » Programación para mayores de 30 ;) » Java »

Matrices En Java

Estas en el tema de Matrices En Java en el foro de Java en Foros del Web. Necesito multiplicar matrices en java.. gracias El tamaño de las matrices es ingresada por teclado, si alguien lo tiene resuelto, por favor responderme...
  #1 (permalink)  
Antiguo 27/09/2005, 15:57
Avatar de elcarenalga  
Fecha de Ingreso: agosto-2005
Mensajes: 35
Antigüedad: 18 años, 8 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 27/09/2005, 21:23
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
La pregunta esta demaciado mal especificada? que necesitas multiplicar cada uno de los contenidos de 2 matrices o mas? estilo burbuja? o que?

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 28/09/2005, 07:22
Avatar de elcarenalga  
Fecha de Ingreso: agosto-2005
Mensajes: 35
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
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
Solo es multiplicar dos matrices, filas por columnas m*n, y que me de como resultado una nueva matriz con los valores nuevos. gracias
  #4 (permalink)  
Antiguo 28/09/2005, 09:42
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 9 meses
Puntos: 10
Código PHP:
public int[] multiplicar(int[] matrizUnoint[] matrizDos) {
    
int[] matrizResultado = new int(matrizUno.length);

    for(
int i 0matrizUno.lengthi++) {
        
matrizResultado[i] = matrizUno[i] * matrizDos[i];
    }

    return 
matrizResultado;

Esos es todo

Claro, se supone que las dos matrices a multiplicar tiene la misma cantidad de elemntos.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #5 (permalink)  
Antiguo 03/10/2005, 15:03
 
Fecha de Ingreso: octubre-2005
Ubicación: Valdivia
Mensajes: 5
Antigüedad: 18 años, 6 meses
Puntos: 1
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
  #6 (permalink)  
Antiguo 03/10/2005, 15:43
 
Fecha de Ingreso: octubre-2005
Ubicación: Valdivia
Mensajes: 5
Antigüedad: 18 años, 6 meses
Puntos: 1
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;

}
}
  #7 (permalink)  
Antiguo 06/02/2008, 17:00
 
Fecha de Ingreso: agosto-2004
Mensajes: 4
Antigüedad: 19 años, 8 meses
Puntos: 0
Re: Matrices En Java

Cita:
Iniciado por goncafa Ver Mensaje
Código PHP:
public int[] multiplicar(int[] matrizUnoint[] matrizDos) {
    
int[] matrizResultado = new int(matrizUno.length);

    for(
int i 0matrizUno.lengthi++) {
        
matrizResultado[i] = matrizUno[i] * matrizDos[i];
    }

    return 
matrizResultado;

Esos es todo

Claro, se supone que las dos matrices a multiplicar tiene la misma cantidad de elemntos.

Saludos
Es una irresponsabilidad hablar sobre un tema que no conoces, la multiplicación de matrices es algo mas que tu ejemplo.

Consulta esta tema: http://es.wikipedia.org/wiki/Producto_de_matrices
  #8 (permalink)  
Antiguo 07/02/2008, 07:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 3
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Matrices En Java

Cita:
Iniciado por elcarenalga Ver Mensaje
Necesito multiplicar matrices en java.. gracias
El tamaño de las matrices es ingresada por teclado, si alguien lo tiene resuelto, por favor responderme
Esto me huele a tarea.... busca primero---->Google!!
  #9 (permalink)  
Antiguo 07/02/2008, 07:11
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Matrices En Java

este era un tema del año 2005, para que volver a escribir en el y decir cosas como esta???
  #10 (permalink)  
Antiguo 18/04/2008, 03:56
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
De acuerdo 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*/
  #11 (permalink)  
Antiguo 19/08/2008, 14:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 11
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Matrices En Java

Está muy bien el programita... Gracias me sirvió demasiado!!
  #12 (permalink)  
Antiguo 07/09/2011, 20:46
 
Fecha de Ingreso: septiembre-2011
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
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);
}
}

}
  #13 (permalink)  
Antiguo 07/09/2011, 20:54
 
Fecha de Ingreso: septiembre-2011
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
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????????????????
  #14 (permalink)  
Antiguo 07/09/2011, 21:01
 
Fecha de Ingreso: septiembre-2011
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
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());
}

}
  #15 (permalink)  
Antiguo 07/09/2011, 21:20
 
Fecha de Ingreso: septiembre-2011
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
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;
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 7 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:20.