Bueno hoy me vi en la necesidad de hacer una multiplicación de matrices en Java, las matrices no necesariamente son cuadradas pero obviamente deben cumplir con la propiedad de: Número de filas de la primera debe ser igual al número de columnas de la segunda…
Total que busqué un algoritmo o método ya hecho para solo copiar y pegar pues me dada flojera programarlo, pero como no encontré nada útil pues terminé programándolo yo. Y por eso dejo aquí el código del método:
public final class Matriz {
/**
* Multiplica dos matrices
* @param int[][] A
* @param int[][] B
* @return int[][] producto
*/
private static int[][] producto(int A[][], int B[][]){
int suma = 0;
int result[][] = new int[A.length][B.length];
for(int i = 0; i < A.length; i++){
for(int j = 0; j < B.length; j++){
suma = 0;
for(int k = 0; k < B.length; k++){
suma += A[i][k] * B[k][j];
}
result[i][j] = suma;
}
}
return result;
}
}
El método es estático pues está dentro de una clase final (no instanciable ni extendible). De modo que para hacer una multiplicación solo basta con:
// Se asume que matrizA y matrizB ya están declaradas y son // diferente a <null> int matrizProducto[][] = Matriz.producto(matrizA, matrizB);
Espero que a más de uno le sirvan así como les sirvieron tambien los scripts para resolver matrices con el método de Gauss en PHP.
Popularidad: 9%







21 de Junio de 2009
Hola, mire tu código y lo probé pero me dio error en los limites de los for, osea en las matrices y envié los limites al método que da algo así:
public int[][] producto(int A[][], int B[][], int m,int n1,int n){
int suma = 0;
int result[][] = new int[m][n1];
for(int i = 0; i < m; i++){
for(int j = 0; j < n1; j++){
suma = 0;
for(int k = 0; k < n; k++){
suma +=A[i][k] * B[k][j];
}
result[i][j] = suma;
}
}
return result;
}
donde:
m=filas de A
n=filas de B o columnas de A
n1=columas de B
porque creo que cuando haces un length toma el tamaño total.
21 de Junio de 2009
con esas modificaciones si funciona…..
9 de Julio de 2010
loco victor a mi tambien me jode los limites del for…
q representan int m,int n1,int n en tu caso? y gracias a Abel x postear el codigo!! les agradezco su ayuda!
21 de Junio de 2009
A mi me funciona perfecto el código que puse…
5 de Noviembre de 2009
muy buenos comentarios sobre matrices se les agradese me an servido mucho si tienen mas mejor suma,multiplicacion mejor dicho todo lo relacionado con matrices ya que el ultimo parcial que metoca presentar es sobre matrices les agradesco toda la informacion que puedad subir gracias
17 de Febrero de 2010
Gracias por el código.. a mí también me dió flojera y me vino a la mano que alguien me lo pasara programado.
Lo que si, me parece que el código debería ser sometido a una pequeña modificacion. si coloco A.length y B.length, los 2 están tomando las longitudes de las filas.. para que B tome la long de la columna, debería ser la long de un elemento de B, o sea algo como B[0].length.
Saludos y gracias por el código.
31 de Marzo de 2010
Efectivamente
A.length y B.lengthtoman las longitudes de sus respectivas filas, pero eso es porque la longitud de las columnas de B es igual a la longitud de las filas de A. Por eso es correcta esa línea.Si no me crees pruébala. Funcionará siempre que las dos matrices puedan ser multiplicadas.
11 de Abril de 2010
holapp ayudenme con esto porfaa
Suponga que tiene estas cuatro clases: Persona, Profesor,
Estudiante y EstudianteDoctorado. Tanto Profesor como
Estudiante son subclases de Persona y EstudianteDoctorado
es una subclase de Estudiante. ¿cual de las siguientes asignaciones
son legales y porque?
Persona p1=new Estudiante();
Persona p2=new EstudianteDoctorado();
Profesor t1=new Persona();
Estudiante e1=new EstudianteDoctorado();
e=p1;
e1=p2;
p1=e1;
t1=e1;
e1=ed1;
ed1=e1;
Porfavor me podrias ayudar con esto estaria eternamente agradecido
att: William
4 de Junio de 2010
TU CÓDIGO NO FUNCIONA, ABEL.
Intenta multiplicar A(2×3) * B(3×2) = C(2×2) y verás como los resultados no son correctos.
4 de Junio de 2010
No puedo probarlo ahora pero lo probé ya muchísimas veces, con matrices de diferentes tamaños. Recuerda que no lo programé solo para publicarlo aquí, ese código lo usé en dos proyectos de la universidad y nunca me dio resultados erróneos, por si fuera poco no fui el único que lo usó. Muchos más lo han usado con resultados satisfactorios.
Quizás el problema es que no sabes resolver matrices con lápiz y papel, lo haces mal y por eso crees que mi clase no funciona jajaja.
6 de Junio de 2010
hola necesito un favor la solucion de este ejercicio en netbens.
TALLER: MATRICES Diseñar e implementar una aplicación en JAVA que lea dos matrices de tamaño dado por el usuario y calcule:
Suma de las matrices
Producto por un escalar ( para un k dado)
Producto de las matrices
Determinar si una matriz es: Triángular superior, Triangular inferior, Matriz Diagonal y Matriz Escalar
Los elementos de las matrices podrán ser ingresados por el usuario o generados de forma aleatoria.
9 de Junio de 2010
Suerte
9 de Junio de 2010
Por favor necesito ayuda con este programa pero en java class.
Suponga que en una matriz se almacenan los datos de la cantidad de estudidantes en cada uno de los semestres de 3 facultades, se desea obtener las:
1. Monstrar cuantos estudiantes hay en la universidad.
2. Cuantos estudiantes tiene cada facultad.
3. Monstrar cuantos estudiantes tiene cada semestre.
9 de Junio de 2010
Prográmalo webon, o quieres que yo te haga la tarea?
9 de Junio de 2010
a mí también me funciona al cien