multiplicacion de matrices en java
>Hola! Necesitamos un programa en Java que haga lo siguiente:
> necesito un programa q tenga 2 matrices con n numero de filas y m numero de columnas las dos (n y m seran ingresadas desde e teclado) (todos los datos de la matriz 1y 2 tienen q ser ingresados desde el teclado!!) y q me despliegue en una matriz resultado las multiplicacion de la matriz 1 y la matriz 2...
la matriz resultado tiene q tener las filas de la matriz 1 y las columnas de la matriz 2..
y el programa necesita una condicion "para q este funcione: las columanas de la matriz 1 tienen ser iguales a las filas de la matriz 2"
tambien necesito el despliegue de las tres matrices en fila por ejemplo..
matriz 1 matriz 2 resul
1 2 5 6 19 22
3 4 7 8 43 50
asi es como necesito el despliegue!! por favor ayudenme es necesario es mi examen final!!!!
> necesito un programa q tenga 2 matrices con n numero de filas y m numero de columnas las dos (n y m seran ingresadas desde e teclado) (todos los datos de la matriz 1y 2 tienen q ser ingresados desde el teclado!!) y q me despliegue en una matriz resultado las multiplicacion de la matriz 1 y la matriz 2...
la matriz resultado tiene q tener las filas de la matriz 1 y las columnas de la matriz 2..
y el programa necesita una condicion "para q este funcione: las columanas de la matriz 1 tienen ser iguales a las filas de la matriz 2"
tambien necesito el despliegue de las tres matrices en fila por ejemplo..
matriz 1 matriz 2 resul
1 2 5 6 19 22
3 4 7 8 43 50
asi es como necesito el despliegue!! por favor ayudenme es necesario es mi examen final!!!!
Bueno, te puedo ayudar pasandote un codigo que sirve para multiplicar las matrices el resto de hacer las validaciones haslo tu
for(i=0; i < A.length - 1;i++)
{
for( j =0;j<B[0].length - 1;j++)
{
for ( k=0;k<A.length - 1 ;k++)
{
mtrxC[i][j] = mtrxC[i][j] + (A[i][k] *B[k][j]);
}
}
}
listo con eso queda la multipliccion el A.length - 1 es el tamaño de la matriz
espero que te sirva
for(i=0; i < A.length - 1;i++)
{
for( j =0;j<B[0].length - 1;j++)
{
for ( k=0;k<A.length - 1 ;k++)
{
mtrxC[i][j] = mtrxC[i][j] + (A[i][k] *B[k][j]);
}
}
}
listo con eso queda la multipliccion el A.length - 1 es el tamaño de la matriz
espero que te sirva
public float[][] MultiplyMatrix(float[][] a, float[][] b) throws Exception {
if(a[0].length != b.length)
throw new Exception("Matrices incompatible for multiplication");
float matrix[][] = new float[a.length][b[0].length];
for (int i = 0; i < a.length; i++)
for (int j = 0; j < b[i].length; j++)
matrix[i][j] = 0;
//cycle through answer matrix
for(int i = 0; i < matrix.length; i++){
for(int j = 0; j < matrix[i].length; j++){
matrix[i][j] = calculateRowColumnProduct(a,i,b,j);
}
}
return matrix;
}
public float calculateRowColumnProduct(float[][] A, int row, float[][] B, int col){
float product = 0;
for(int i = 0; i < A[row].length; i++)
product +=A[row][i]*B[i][col];
return product;
}
if(a[0].length != b.length)
throw new Exception("Matrices incompatible for multiplication");
float matrix[][] = new float[a.length][b[0].length];
for (int i = 0; i < a.length; i++)
for (int j = 0; j < b[i].length; j++)
matrix[i][j] = 0;
//cycle through answer matrix
for(int i = 0; i < matrix.length; i++){
for(int j = 0; j < matrix[i].length; j++){
matrix[i][j] = calculateRowColumnProduct(a,i,b,j);
}
}
return matrix;
}
public float calculateRowColumnProduct(float[][] A, int row, float[][] B, int col){
float product = 0;
for(int i = 0; i < A[row].length; i++)
product +=A[row][i]*B[i][col];
return product;
}