Curso Java Intermedio #31 | Multiplicación de Matrices en Java

  Рет қаралды 62,789

La Geekipedia De Ernesto

La Geekipedia De Ernesto

Күн бұрын

Пікірлер: 127
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
¿Te gustaría que este contenido siga siendo gratuito?, puedes apoyar al canal de las siguientes maneras: 1. Donaciones: www.paypal.me/LaGeekipedia 2. Desactivando Adblock y Adblock Plus en KZbin. 3. Compartiendo los vídeos del canal en foros y redes sociales. Cualquier opción es de gran ayuda. ¡Muchas gracias!
@brenjohnson4583
@brenjohnson4583 6 жыл бұрын
La Geekipedia De Ernesto Hola Ernesto.. te pregunto, como se desactivan?. Gracias
@MARQUITOSGUALACBA
@MARQUITOSGUALACBA 6 жыл бұрын
Si, había que configurarlo, gracias
@edgarfhenriquez9974
@edgarfhenriquez9974 4 жыл бұрын
Lo hice en 75 pasos. Estoy Aprendiendo
@marcmartorell8780
@marcmartorell8780 4 жыл бұрын
Gracias por todo el conocimiento que nos das. He aprendido mucho. Para multiplicar matrices creo más adecuado y funciona el siguiente código: for(int i=0; i < 2; i++){ for(int j = 0; j < 2; j++){ for(int k=0; k
@francogiova8818
@francogiova8818 2 жыл бұрын
muy buena forma de hacerlo, yo me la complique usando dos fors, con 3 fors es mucho mas sencillo jajaja
@JSilvaCP
@JSilvaCP 6 жыл бұрын
El código bloque para multiplicar las dos matrices lo realicé de la siguiente forma para que sea mas dinámico; quedo atento a quien lo quiera complementar, saludos: PD: Tener en cuenta que solo se puede multiplicar dos matrices si sus dimensiones son compatibles , lo que significa que el número de columnas en la primera matriz es igual al número de filas en la segunda matriz. /* Multiplicación matrices: "matrizR" = "matrizF1" x "matrizF2" * Dimensiones de las matrices: * int [][] matrizF1 = new int[filasF1][columnasF1]; * int [][] matrizF2 = new int[columnasF1][columnasF2]; * int [][] matrizR = new int[filasF1][columnasF2]; */ for (int i = 0; i < filasF1; i++) { for (int j = 0; j < columnasF2; j++) { for (int k = 0; k < columnasF1; k++) { matrizR[i][j] += matrizF1[i][k] * matrizF2[k][j]; } } }
@federicostoppo1117
@federicostoppo1117 6 жыл бұрын
Hola me parece un gran aporte el que hiciste!! Te quería preguntar : si el numero de columnas de la "MatrizF1" es 11, y el numero de filas de la "MatrizF2" es 7, daría una Matriz que debería tener 77 espacios de memoria... Como es posible crear una Matriz de 77 espacios de memoria si lo máximo que se puede poner son 8 fila y 9 columnas? Osea quedaría así: * int [][] matrizF1 = new int[filasF1][11]; * int [][] matrizF2 = new int[7][columnasF2]; * int [][] MatrizResultante = new int[8][9]; Pero bien sabemos que 8 multiplicado por 9 es 72!!! y 9 por 9 es 81!! Como podría crear una matriz con 77 espacios de memoria?? Saludos.
@JSilvaCP
@JSilvaCP 6 жыл бұрын
Federico cordial saludo, si estás realizando una multiplicación entre matrices debes considerar que sus dimensiones sean compatibles, lo que significa que el número de columnas de la "matrizF1" debe ser igual al número de filas de la "matrizF2"; por tal motivo no es posible realizar la multiplicación que propones. Ahora bien, si lo que quieres es que la "matrizR" (matriz Resultado) contenga 77 espacios , las matrices deben tenes los siguientes parámetros: int [][] matrizF1 = new int[11][n]; int [][] matrizF2 = new int[n][7]; int [][] MatrizResultante = new int[11][7];
@federicostoppo1117
@federicostoppo1117 6 жыл бұрын
Jhony gracias por tu ayuda amigo!! Ahora lo entendí bien!!!!
@fernandod5503
@fernandod5503 6 жыл бұрын
mucho mejor asi.
@michaelmerchan7087
@michaelmerchan7087 5 жыл бұрын
Muy buen aporte. Estaba tratando de optimizar el código y me encontré con estas lineas, me resulto de ayuda.Gracias
@Dannrar
@Dannrar 5 жыл бұрын
Que estos ejercicios son sumamente sencillos!? Madre mía!... Si estoy echando humo por la cabeza! Jajaja....!!
@enriquebarragan212
@enriquebarragan212 4 жыл бұрын
xD Sólo practica un poco más :D
@ignaciioGo
@ignaciioGo 6 жыл бұрын
eres un crack Neto! Eres mi maestro desd que empece a ver tus tutoriales
@ronpb3943
@ronpb3943 4 жыл бұрын
de aquí a 10 años seré un pvto pro en esto, empece gracias a ti Ernesto
@DanViL1992
@DanViL1992 Жыл бұрын
Hola, dime que lo lograste en 2años...
@sergiocomes435
@sergiocomes435 3 жыл бұрын
Me Sirvió mucho para ejercitar la lógica de programación tu propuesta y he aprendido mucho con tus videos tanto del primer curso como de este de nivel intermedio. te envío el código que pude elaborar en el que no pude "acomodar" la presentación de impresión de las matrices operando como de la resultante; pero seguiré practicando. Un afectuoso saludo desde Argentina.
@orlando6804
@orlando6804 2 жыл бұрын
Excelent video Ernesto, cada día aprendo más. Se me complicó un poco entender la parte de la impresión, pero poco a poco voy mejorando. Sigue así que tus videos son muy buenos.
@benjaleal4872
@benjaleal4872 6 жыл бұрын
Me hiciste un parote, espero puedas seguir subiendo videos así, me ayudó mucho y al final analice para saber cómo imprimia y no es tan complejo!!!!!muchísimas gracias!!!!!
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
¡Excelente!, por supuesto que seguiré creando más contenido. Saludos.
@rodrigosolari8103
@rodrigosolari8103 4 жыл бұрын
Hola Ernesto, te felicito y te agradezco por tus videos, aparte de lo mucho que debes saber de programación eres excelente pedagógicamente. Hace poco más de tres semanas me empecé a interesar por la programación y debido al tiempo disponible por la pandemia ya he podido completar el curso de programación desde cero, java desde cero y voy por este capítulo del intermedio. Cuando planteas una situación problema trato de resolverla por mi cuenta para luego ver si coincide mí logics con la tuya. En la carga de la matriz resultado(que yo he llamado "matr") he realizado tres estructuras repetitivas for() llegando a cumplir el objetivo de una manera diferente pero quizás por mi poca experiencia no pueda darme cuenta de si haya posibilidad de que el razonamiento que he empleado me pueda traer alguna complicación, la dejo aquí por si tienes tiempo de verla: for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { matr[i][j] += mat1[k][j] * mat2[i][k]; } } } Muchas gracias por todo el material que brinda, te mando un abrazo desde argentina!
@smopy_uwu5342
@smopy_uwu5342 4 жыл бұрын
2020 todavia funciona jajaja, buen video, me salvaste
@nicolasscattularo9679
@nicolasscattularo9679 3 жыл бұрын
La posición 0-0 de este video, en álgebra es 1-1. Así la posicion 0-1 en algebra es 1-2. Quizás eso genera una dificultad al momento de entender la lógica que usa el autor en el video. Así mismo, es excelente la explicación, muy útil y me hizo sacar humo del cerebro jaja Gracias por el contenido!
@thedarkside228
@thedarkside228 5 жыл бұрын
Que tal amigos, al igual que el vídeo pasado este lo hice a través de hilos y tambien es posible, obviamente considero sube la dificultad pero repito: me parece un excelente desafio para practicar los conceptos dados por Ernesto. los invito a desarrollarlo de esa manera ya que como dijo Ernesto hay varias formas de desarrollarlo. Cualquier pregunta con gusto les responderé.
@enriquebarragan212
@enriquebarragan212 4 жыл бұрын
Yo intenté hacer las dos matrices con un mismo método, pero no logro hacer que el .length me de una diferencia entre filas y columnas, no entiendo como funciona todavía xD
@lucassanchez6869
@lucassanchez6869 4 жыл бұрын
@@enriquebarragan212 trata de crear dos variables (filas y columnas) y les das el numero de filas y de columnas que aparecen en el video, despues crea las matrices, por ej matriz1 [filas][columnas] y asi, despues tienes que jugar con los for
@lucassanchez6869
@lucassanchez6869 4 жыл бұрын
pero hiciste la parte de imprimir o tambien la multiplicacion? es decir: hiciste la logica en el main y la impresion con hilos en otra clase ?
@rafaelhernandezgarcia8774
@rafaelhernandezgarcia8774 5 жыл бұрын
gracias a tu gran explicacion y video se me facilito modificarlo para uno de 3 por 3
@karlozpuyol3382
@karlozpuyol3382 6 жыл бұрын
Excelente sigo tus videos desde el basico..... y seguire con este.. Gracias le doy like...y suscrito...
@extreemmaster4240
@extreemmaster4240 6 жыл бұрын
Hola Ernesto, me encantan tus cursos, voy en esta parte, aquí mi forma de hacer la multiplicación de matrices y la impresión de ellas: //Multiplicación de matrices for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { int temporal = (matriz_uno[j][0] * matriz_dos[0][i]) + (matriz_uno[j][1] * matriz_dos[1][i]) + (matriz_uno[j][2] * matriz_dos[2][i]); matriz_r[j][i] = temporal; } } //Imprimir matrices for (int i = 0; i < 3; i++) { if (i < 2) { for (int j = 0; j < 3; j++) { System.out.print("[" + matriz_uno[i][j] + "]"); } } else { System.out.print(" "); } if (i == 1) { System.out.print(" * "); } else { System.out.print(" "); } for (int j = 0; j < 2; j++) { System.out.print("[" + matriz_dos[i][j] + "]"); } if (i == 1) { System.out.print(" = "); } else { System.out.print(" "); } if (i < 2) { for (int j = 0; j < 2; j++) { System.out.print("[" + matriz_r[i][j] + "]"); } } System.out.println(""); }
@luisgera22
@luisgera22 4 жыл бұрын
yo pensé que teniamos que hacer un llenado de la matriz resultante dinámico, pero fue manual , entonces así en teoría es más fácil
@erikrtk868
@erikrtk868 3 жыл бұрын
Que explicación tan sublime 👏
@deodato7444
@deodato7444 4 жыл бұрын
Muchas gracias por el video. Hice el programa para otros tamaños de matrices aunque sólo funciona si las filas de la matriz 2 son más que las filas de la matriz 1: public class ClasePrincipal { public static void main(String[] args) { int matriz1[][] = new int[3][5]; int matriz2[][] = new int[5][3]; int matriz3[][] = new int[3][3]; //Llenar matriz1 for (int i = 0; i < matriz1.length; i++) { for (int j = 0; j < matriz1[0].length; j++) { matriz1[i][j] = (int) (Math.random() * 5 + 1); } } //Llenar matriz2 for (int i = 0; i < matriz2.length; i++) { for (int j = 0; j < matriz2[0].length; j++) { matriz2[i][j] = (int) (Math.random() * 5 + 1); } } //Multiplicar matrices for (int i = 0; i < matriz1.length; i++) { for (int j = 0; j < matriz2[0].length; j++) { matriz3[i][j] = 0; for (int k = 0; k < matriz2.length; k++) { matriz3[i][j] += matriz1[i][k] * matriz2[k][j]; } } } //Imprimir matrices for (int i = 0; i < matriz2.length; i++) { if (matriz1.length > i) { for (int j = 0; j < matriz1[0].length; j++) { System.out.print("[" + matriz1[i][j] + "]"); } } else { for (int j = 0; j < matriz1[0].length * 3; j++) { System.out.print(" "); } } if(i == 1){ System.out.print(" x "); } else { System.out.print(" "); } if (matriz2.length > i) { for (int j = 0; j < matriz2[0].length; j++) { System.out.print("[" + matriz2[i][j] + "]"); } } if(i == 1){ System.out.print(" = "); } else { System.out.print(" "); } if (matriz3.length > i) { for (int j = 0; j < matriz3[0].length; j++) { System.out.print("[" + matriz3[i][j] + "]"); } } System.out.println(""); } } }
@d-landjs
@d-landjs 3 жыл бұрын
Excelente tutorial!!! Me encantan estos ejercicios :D
@juancamiloparedeszamora8481
@juancamiloparedeszamora8481 9 ай бұрын
Excelente clase profe, una anotación. Creo que el algoritmo implementado presentará un pequeño bug cuando el resultado de alguno de los elementos de la matriz resultante sea cero, si esto pasa nunca se podrán calcular los elementos de la matriz resultante que le siguen, y tendíamos varios ceros en lugar del resultado de la multiplicación.
@gilbertoflorescastillo9614
@gilbertoflorescastillo9614 4 жыл бұрын
Espero algún día tener esa lógica de programación porque la verdad se me dificulto mucho xD
@erikjulianmartinezcrispin7024
@erikjulianmartinezcrispin7024 3 жыл бұрын
excelente video
@christianlazo473
@christianlazo473 5 жыл бұрын
En este video se me ha quemado el cerebro xD, Gran contenido muchas gracias, te sigo desde el curso desde 0
@erikgarcia9545
@erikgarcia9545 6 жыл бұрын
Excelente,. Lo mejor
@danielcampos4062
@danielcampos4062 4 жыл бұрын
Mi cabeza explotó con este video
@ElRincóndelasFantasías
@ElRincóndelasFantasías 10 ай бұрын
😂😂
@mariaguevara5177
@mariaguevara5177 5 жыл бұрын
Saludos Ernesto, gracias por tan excelente contenido compartido. Aunque no tendría porqué, pero me estaba confundiendo. Cuando explicabas la parte gráfica del desarrollo del ejercicio, te referías a las columnas y filas desde la posición uno en adelante. Pero al momento de desarrollar el ejercicio en netbeans ya empezabas a contar o enumerar las filas y columnas desde la posición cero. Repito, no tendría porqué pero ese detalle me estaba creando una tremenda confusión.
@xxconyutoxx
@xxconyutoxx 5 жыл бұрын
En la mayoría de lenguajes, los vectores comienzan en la posición [0] Si tienes un vector de 3 elementos, sus componentes serán [0], [1] y [2]. Al principio del vídeo solo lo explico de la manera que lo hizo para que entendiéramos mejor lo de la multiplicación de matrices.
@GianmarcoContreras
@GianmarcoContreras 4 жыл бұрын
Me detuvo un momento a analizar el ejercicio y me di cuenta que no es tan complicado como parece.
@pamelamuralles9374
@pamelamuralles9374 4 жыл бұрын
LO ADOROOOOOO Gracias
@stevenjm8444
@stevenjm8444 3 жыл бұрын
yo en la forma de calcular la matriz resultante lo hice utilizando solo variables del for, esa guevada me demoro horas pensando, pero valio la pena aqui les dejo por si acaso :D package clase; public class Multiplicacion { public static void main(String[] args) { int matrizUno[][] = new int[2][3]; int matrizDos[][] = new int[3][2]; int r_matriz[][] = new int[2][2]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { matrizUno[i][j] = (int)(Math.random() * 3); } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { matrizDos[i][j] = (int)(Math.random() * 3); } } //Estructura matriz resultante for (int i = 0; i < 2; i++) { if(i == 0){ for (int j = 0; j < 3; j++) { r_matriz[i][0] += matrizUno[i][j] * matrizDos[j][i]; r_matriz[i][1] += matrizUno[i][j] * matrizDos[j][i+1]; } }else if(i == 1){ for (int j = 0; j < 3; j++) { r_matriz[i][1] += matrizUno[i][j] * matrizDos[j][i]; r_matriz[i][0] += matrizUno[i][j] * matrizDos[j][i-1]; } } } for (int i = 0; i < 3; i++) { if(i != 2){ for (int j = 0; j < 3; j++) { System.out.print("[ " + matrizUno[i][j] + " ]"); } }else if (i == 2) { System.out.print(" "); } if (i == 1) { System.out.print(" x "); }else{ System.out.print(" "); } for (int j = 0; j < 2; j++) { System.out.print("[ " + matrizDos[i][j] + " ]"); } if (i == 1) { System.out.print(" = "); }else{ System.out.print(" "); } if(i != 2){ for (int j = 0; j < 2; j++) { System.out.print("[ " + r_matriz[i][j] + " ]"); } } System.out.println(""); } } }
@clementesoza4123
@clementesoza4123 4 жыл бұрын
Gracias!
@ThisAbubu
@ThisAbubu 6 жыл бұрын
Ya esta ya hackeo la nasa :v
@DDD_04_08
@DDD_04_08 6 жыл бұрын
jajajajajjaja eso mismo pense
@jorgearequipa644
@jorgearequipa644 5 жыл бұрын
genial amigo exelente explicacion in like.
@MrDanikho
@MrDanikho 5 жыл бұрын
Gente, para los que quieran, les dejo código que sirve para multiplicar 2 matrices sin importar la cantidad de filas o columnas que tengan (siempre respetando las reglas para multiplicar matrices). Me costó pero salió, jeje. Una vez que tenemos las dos matrices y la de resultado declaradas, y las dos matrices a multiplicar llenadas: int rondas = matriz_1 [1].length * (matriz_resultado.length * matriz_resultado[1].length); int ic1 = 0, if1 = 0, ic2 = 0, if2 = 0, icr = 0, ifr = 0; int temporal = 0; for (int i = 0; i < rondas; i++) { temporal += matriz_1[if1][ic1] * matriz_2[if2][ic2]; ic1++; if2++; if (ic1 == matriz_1[1].length) { matriz_resultado[ifr][icr] = temporal; temporal = 0; icr++; if (icr == matriz_resultado[1].length) { icr = 0; ifr++; } ic1 = 0; if2 = 0; if (ic2 < matriz_2[1].length - 1) { ic2++; } else if (ic2 == matriz_2[1].length - 1) { if1++; ic2 = 0; } } } donde ic1 es el indice de columnas de la matriz 1, ifr es el indice de la matriz resultante, y así. saludos!
@oscargm1979
@oscargm1979 4 жыл бұрын
Maquina :) Gracias
@jacksonprieto8459
@jacksonprieto8459 2 жыл бұрын
Hola ernesto una pregunta porq cuado ud esta enseñando como realizar el ejercicio en minuto 1:20 y cuando vas a empezar a enseñar a sacar el resultado de la multiplicación estas enseñando otra manera de sacar el resultado?
@jacksonprieto8459
@jacksonprieto8459 2 жыл бұрын
Segun lo q estoy entendiendo es q ud esta agarrando dos filas de la primera matriz y dos columnas de la segunda matriz para asi crear la matriz resultantes es eso?
@janof21
@janof21 6 жыл бұрын
un curso de PHP estaria muy bueno, Gracias Ernesto
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
¡Hola!, las votaciones están abiertas en las redes sociales del canal y se cierran el próximo viernes 7 de Septiembre de 2018, entre los cursos disponible se encuentra el curso de PHP, puedes votar para apoyar a que este curso gane y sea parte de los cursos del próximo paquete que será publicado. Saludos.
@jeferos393
@jeferos393 5 жыл бұрын
Excelente vídeo. Una pregunta Ernesto, ¿Java tiene librerías o clases (soy nuevo en este lenguaje) que te faciliten las operaciones con matrices, como la librería Numpy en Python?
@maurizioros3155
@maurizioros3155 6 жыл бұрын
Hola Ernesto, he escrito my versión del programa que funciona pidiendo el tamaño de las matrices al usuario, lo pongo aquí esperando ser de ayuda a alguien ;) public static void main(String[] args) { Scanner param = new Scanner(System.in); System.out.println("Dame el n. de lineas: "); int lineas = param.nextInt(); System.out.println("Dame el n. de columnas: "); int columnas = param.nextInt(); // creo las 3 matrices int matr_uno[][] = new int[lineas][columnas]; int matr_due[][] = new int[columnas][lineas]; int matr_tre[][] = new int[lineas][lineas]; // pongo los numeros aleatorios en las dos matrices for (int linea = 0; linea < lineas; linea++) { for (int col = 0; col < columnas; col++) { matr_uno[linea][col] = (int) (Math.random() * 10); matr_due[col][linea] = (int) (Math.random() * 10); } } for (int linea = 0; linea < lineas; linea++) { for (int col = 0; col < lineas; col++) { matr_uno[linea][col] = (int) (Math.random() * 10); matr_due[col][linea] = (int) (Math.random() * 10); } } // calculo la matriz 3 for (int linea_3 = 0; linea_3 < lineas; linea_3++) { for (int linea = 0; linea < lineas; linea++) { for (int col = 0; col < columnas; col++) { matr_tre[linea_3][linea] = matr_tre[linea_3][linea] + matr_uno[linea][col] * matr_due[col][linea_3]; } } } // enseño la matriz 1 System.out.println("Matriz 1"); for (int linea = 0; linea < lineas; linea++) { for (int col = 0; col < columnas; col++) { System.out.print("[" + matr_uno[linea][col] + "] "); } System.out.println(""); } // enseño la matriz 2 System.out.println("Matriz 2"); for (int linea = 0; linea < columnas; linea++) { for (int col = 0; col < lineas; col++) { System.out.print("[" + matr_due[linea][col] + "] "); } System.out.println(""); } // enseño la matriz 3 System.out.println("Matriz 3"); for (int linea = 0; linea < lineas; linea++) { for (int col = 0; col < lineas; col++) { System.out.print("[" + matr_tre[linea][col] + "] "); } System.out.println(""); } }
@katsu7188
@katsu7188 6 жыл бұрын
¡¡Por cierto!! Revisando tu código noté que da error cuando agregas Lineas > Columnas, por ejemplo: lineas: 5 columnas: 3 ¿qué tal si te propones a solucionarlo solo como práctica? le buscas más errores y así practicas hasta tener un programa perfecto :3 Yo lo solucionaré por mi parte para practicar y aprender a leer errores. ¡Saludos!
@maurizioros3155
@maurizioros3155 6 жыл бұрын
Verdad! era una tonteria, en la linea 24 debes poner "col < columnas", yo copiando y pegando puse "col
@angelelias.9789
@angelelias.9789 3 жыл бұрын
Gracias, me salvaste el pellejo con este código. 👍🏼
@kilokoins1336
@kilokoins1336 2 жыл бұрын
El código para multiplicar las matrices la realice de la siguiente forma para que sea mas corto: // Operations for (int i = 0; i < 3; i++) { Matrx_R[0][0] = Matrx_R[0][0] + (Matrx_1[0][i] * Matrx_2[i][0]); Matrx_R[0][1] = Matrx_R[0][1] + (Matrx_1[1][i] * Matrx_2[i][0]); Matrx_R[1][0] = Matrx_R[1][0] + (Matrx_1[0][i] * Matrx_2[i][1]); Matrx_R[1][1] = Matrx_R[1][1] + (Matrx_1[1][i] * Matrx_2[i][1]); }
@Silperscom
@Silperscom 5 жыл бұрын
Rayos, creo que me estoy volviendo loco y, así quiero llegar a marte...
@nandodo203
@nandodo203 4 жыл бұрын
Quiero compartir la lógica que utilicé para resolver este problema ya que es diferente a la del video y pienso que a alguno le podría interesar public class MultiplicaciónDeMatrices { public static void main(String[] args) { int matriz1[][] = new int[2][3]; int matriz2[][] = new int[3][2]; int matrizResultante[][] = new int[2][2]; //llenado de matriz1 for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { matriz1[i][j] = (int) (Math.random() * 5); } } //llenado de matriz2 for (int i = 0; i < 3; i++) { for (int j = 0; j < 2; j++) { matriz2[i][j] = (int) (Math.random() * 5); } } //Multiplicación de matrices for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { int valorAcumulado = 0; for (int k = 0; k < 3; k++) { valorAcumulado += matriz1[i][k] * matriz2[k][j]; if (k == 2) { matrizResultante[i][j] = valorAcumulado; } } } } //impresion en pantalla for (int i = 0; i < 3; i++) { if (i < 2) { for (int j = 0; j < 3; j++) { System.out.print("[" + matriz1[i][j] + "]"); } //****************************** if (i == 0) { System.out.print(" x "); } else { System.out.print(" "); } //****************************** for (int j = 0; j < 2; j++) { System.out.print("[" + matriz2[i][j] + "]"); } //***************************** if (i == 0) { System.out.print(" = "); } else { System.out.print(" "); } //****************************** for (int j = 0; j < 2; j++) { System.out.print("[" + matrizResultante[i][j] + "]"); } System.out.println(""); } else { System.out.print(" "); for (int j = 0; j < 2; j++) { System.out.print("["+matriz2[i][j]+"]"); } System.out.println(""); } } } }
@hiramjairramirezsanchez3952
@hiramjairramirezsanchez3952 3 жыл бұрын
Buenos días, me percate de que este código contiene un error en dado caso de que de igual a 0 la multiplicación, si eso pasa para el primer resultado de la primera posición de la matriz resultante, los otros 3 espacios también tendrán un 0, ya que el ciclo for tomaría como referencia el primer caso y los demás no se cumplirían. Aquí dejo el código que hice con ese problema resuelto, repito, solo en caso de que la suma de las multiplicaciones de igual a 0 generaría un error. Espero les sirva :D public class ClasePrincipal { public static void main(String[] args) { int matriz_uno [][] = new int [3][2]; int matriz_dos [][] = new int [2][3]; int matriz_resultante [][] = new int [3][3]; int temporal = 0; //Llenado de la matriz_uno for (int i = 0; i < 3; i++) { for (int j = 0; j < 2;j++) { matriz_uno [i][j] = (int) (Math.random() * 5); } } //Llenado de la matriz_dos for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { matriz_dos [i][j] = (int) (Math.random() * 5); } } //Lenado de la matriz_resultante for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { temporal += matriz_uno [j][i] * matriz_dos [i][j]; } matriz_resultante [i][i] = temporal; temporal = 0; if (i == 0) { for (int j = 0; j < 3; j++) { temporal += matriz_uno [j][1] * matriz_dos [i][j]; } matriz_resultante [i][1] = temporal; } else { for (int j = 0; j < 3; j++) { temporal += matriz_uno [j][0] * matriz_dos [i][j]; } matriz_resultante [i][0] = temporal; } temporal = 0; } //Imprimir todo for (int i = 0; i < 3; i++) { if (i < 2) { for(int j = 0; j < 3; j++) { System.out.print("[" + matriz_uno[j][i] + "]"); } } else { System.out.print(" "); } System.out.print(" "); if (i == 1) { System.out.print("x "); } else { System.out.print(" "); } for(int j = 0; j < 2; j++) { System.out.print("[" + matriz_dos[j][i] +"]"); } System.out.print(" "); if (i == 1) { System.out.print("= "); } else { System.out.print(" "); } if (i < 2) { for(int j = 0; j < 2; j++) { System.out.print("[" + matriz_resultante[j][i] + "]"); } } System.out.println(""); } } }
@josepared7243
@josepared7243 5 жыл бұрын
se me complico un poquito pero ya nada gracias lo analice y todo super facil ernesto
@JuansiOfficial
@JuansiOfficial Жыл бұрын
Muy buenas tardes Ernesto. Lamentablemente, el autocompletado de NetBeans no me está funcionando, ya que al escribir "sout" no pasa absolutamente nada, y cuando escribo, por ejemplo, "java.util", no me sale la lista con las clases del JDK como Scanner y Random. Si usted o algun estudiante sabe como activarlo, le agradezco mucho su ayuda. Los programas que uso son NetBeans IDE 8.2, Java SE Development Kit 8 Update 361 (64-bit) y Java 8 Update 361 (64-bit). No se si tiene algo que ver pero uso Windows 10 MiniOS LTSC (64 Bits).
@allker1192
@allker1192 2 ай бұрын
Ya habia pasado por estructuras de datos en c, asi que tengo un doctorado en bucles anidados 🤓. public class MatrizResultante { private final static int[][] matriz = new int[2][3]; private static void multiplicarMatrices(){ for(int i = 0; i
@tomasyedid3140
@tomasyedid3140 4 жыл бұрын
Hola ernesto, excelente video y gran curso. Pregunta alguien sabe porque es esto? Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 edit: Ya esta ya lo solucione xd
@MARQUITOSGUALACBA
@MARQUITOSGUALACBA 6 жыл бұрын
Hola Ernesto! Como haces para que el sistema solo te agregue el ciclo for apretanto tab? yo lo hago y me tira otra estructura tengo que seleccionar con el mouse de la lista de opciones para agregar el for predefinido
@carloszambrano8548
@carloszambrano8548 6 жыл бұрын
escribes for y tabulas y listo
@federicostoppo1117
@federicostoppo1117 6 жыл бұрын
Hola Ernesto, te quería preguntar algo que ya se lo he hecho a un usuario que ha comentado tu video. Ejemplo : si el numero de filas de la "Matriz1" es 11, y el numero de columna de la "Matriz2" es 7, daría una Matriz que debería tener 77 espacios de memoria... Como es posible crear una Matriz de 77 espacios de memoria si lo máximo que se puede poner son 8 fila y 9 columnas? Osea quedaría así: * int [][] matriz1 = new int[11][columnas1]; * int [][] matriz2 = new int[filas2][7]; * int [][] MatrizResultante = new int[8][9]; Pero bien sabemos que 8 multiplicado por 9 es 72!!! y 9 por 9 es 81!! Como podría crear una matriz con 77 espacios de memoria?? Saludos.
@juanignacio409
@juanignacio409 5 жыл бұрын
Hola compañero ! Para multiplicar Matrices el numero de filas de la matriz uno debe ser igual al numero de columnas de la matriz dos,esa es la condición que se tiene que respetar. Una Matriz con 11 filas solo se puede multiplicar con una matriz de 11 columnas y resultaría en una Matriz de 11 x 11.
@juanfraucastro
@juanfraucastro 4 жыл бұрын
Un truco para saber que matrices se pueden multiplicar y que dimensiones va a tener la matriz resultante es el siguiente. Las matrices se definen por el número de filas y columnas, es decir una matriz de 2 filas y 3 columnas es una matriz de 2X3. Entonces: matriz 1 matriz 2 2 x 3 3 x 4 Números interioress iguales (3, 3) -> Se pueden Multiplicar. | |______| | |__________________| Dimensión matriz producto igual a números interiores 2 X 4 matriz 1 matriz 2 5 x 4 2 x 4 Números interiores diferentes (4, 2) -> No se pueden | |______| | multiplicar. |__________________| Saludos
@juanfraucastro
@juanfraucastro 4 жыл бұрын
@@juanignacio409 Es al revés, el número de columnas de la primera ha de ser igual al de filas de la segunda. Piensa que se multiplica el componente de cada vector de la primera matriz (columna) por cada uno de los términos de fila de la segunda Matriz.
@juanignacio409
@juanignacio409 4 жыл бұрын
@@juanfraucastro Es cierto!! Gracias por avisar, genial la técnica que pusiste arriba!! Saludos compañero!!
@AlejandroSanchez-vt2nj
@AlejandroSanchez-vt2nj 6 жыл бұрын
👌 ok
@auron-mono6725
@auron-mono6725 3 жыл бұрын
-----------------Lo hice más corto---------------------- public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Introduce el numero de filas de la primer matriz: "); int f1 = sc.nextInt(); System.out.println("Introduce el numero de columnas de la primer matriz: "); int c1 = sc.nextInt(); System.out.println("Introduce el numero de filas de la segunda matriz: "); int f2 = sc.nextInt(); System.out.println("Introduce el numero de columnas de la segunda matriz: "); int c2 = sc.nextInt(); System.out.println("---Datos ingresados---"); System.out.println("-- Matriz 1 de: " + f1 + "x" + c1 + " --"); System.out.println("-- Matriz 2 de: " + f2 + "x" + c2 + " --"); System.out.println("----------------------"); if (c1 == f2) { int[][] m1 = new int[f1][c1]; int[][] m2 = new int[f2][c2]; int[][] mR = new int[f1][c2]; System.out.println("-> Comineza matriz 1"); for (int i = 0; i < f1; i++) { for (int j = 0; j < c1; j++) { System.out.println("Introduce el valor del elemento " + i + "," + j + ": "); m1[i][j] = sc.nextInt(); } } // Matriz 1 System.out.println("Matriz 1"); for (int i = 0; i < f1; i++) { for (int j = 0; j < c1; j++) { System.out.print(m1[i][j] + " "); } System.out.println(""); } // Matriz 2 System.out.println("-> Comienza matriz 2"); for (int i = 0; i < f2; i++) { for (int j = 0; j < c2; j++) { System.out.println("Introduce el valor del elemento " + i + "," + j + ": "); m2[i][j] = sc.nextInt(); } } System.out.println("Matriz 2"); for (int i = 0; i < f2; i++) { for (int j = 0; j < c2; j++) { System.out.print(m2[i][j] + " "); } System.out.println(""); } // Matriz Resultante System.out.println("-- Matriz Resultante --"); for (int i = 0; i < f1; i++) { for (int j = 0; j < c2; j++) { for (int h = 0; h < c1; h++) { mR[i][j] += m1[i][h] * m2[h][j]; } System.out.print(mR[i][j] + " "); } System.out.println(""); } } else { System.out.println("No se puede realizar la operación"); } }
@Zero-yt1og
@Zero-yt1og 4 жыл бұрын
Yo use for como algunos colegas por aqui para la multiplicacion. Pero para imprimir use 24 System.out.print jajajajaja xD
@alfredoaristizbal91
@alfredoaristizbal91 4 жыл бұрын
JAJAJAJAJAJA x2. Me sentí estúpido al ver que se podía hacer con un for
@NaRuToALFA777
@NaRuToALFA777 9 ай бұрын
yo uso eclipse, podias decirme como importarlo ?
@pchpgera1112
@pchpgera1112 2 жыл бұрын
lo imprimi asi: for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { System.out.print("[" + matriz_uno[i][j] + "]"); } if(i==0){ System.out.print(" " + "[ " + matriz_dos[0][0] + " ]" + "" + "[ " + matriz_dos[0][1] + " ]"); System.out.print(" " + "[ " + matriz_resultante[0][0] + " ]" + "" + "[ " + matriz_resultante[0][1] + " ]"); }else if(i==1){ System.out.print(" * " + "[ " + matriz_dos[1][0] + " ]" + "" + "[ " + matriz_dos[1][1]+ " ]"); System.out.print(" = " + "[ " + matriz_resultante[1][0] + " ]" + "" + "[ " + matriz_resultante[1][1] + " ]"); System.out.print(" " + "[ " + matriz_dos[2][0] + " ]" + "" + "[ " + matriz_dos[2][1]+ " ]"); } System.out.println(""); }
@clementetorres4984
@clementetorres4984 6 жыл бұрын
Algún día dará el curso c# desde cero ?
@434emm
@434emm 4 жыл бұрын
es casi lo mismo que java xd entonces creo que sobra
@juanmasoler7565
@juanmasoler7565 6 жыл бұрын
¿Para qué se suele isar esto?
@alvaroarratialeonardini7116
@alvaroarratialeonardini7116 6 жыл бұрын
Para Ingenieria sirve bastante.
@darkjoker2190
@darkjoker2190 6 жыл бұрын
Una de las aplicaciones de las matrices es cuando se trabaja con las bases de datos, cuando queremos traer grandes flujos de datos (de la base de datos) para después desplegarlos en la aplicación, es una gran idea usar matrices (siempre y cuando los sepas usar) ya que así ahorras recursos y peticiones al servidor.
@carlosmejia7545
@carlosmejia7545 4 жыл бұрын
ufffff ni se por donde empezar no encuentro un punto para empezar
@codigobinario135
@codigobinario135 4 жыл бұрын
Y si es una matriz de 2*2 seguiría los mismos pasos ?
@ACm3mphis
@ACm3mphis 4 жыл бұрын
Puedes hacer la lógica para matrices en general, sin importar el tamaño, siempre manteniendo las condiciones para la multiplicación. No es nada complicado. Saludos.
@guillermocotrinavelasquez3301
@guillermocotrinavelasquez3301 5 жыл бұрын
M parecio complicado darle forma al programa que la programacion del ejercicio
@GabrielRodriguez-ok7qh
@GabrielRodriguez-ok7qh 8 ай бұрын
Pero si quiero hacer un programa mas dinamico no me funcionaria porque estoy llenando la matriz resultante manualmente.... Ayuda please 😅
@nicoconi2315
@nicoconi2315 6 жыл бұрын
Cuando llegaremos a bases de datos :(
@katsu7188
@katsu7188 6 жыл бұрын
sdfsd Pensé que era el único que deseaba eso mientras veía esto :3
@oscarvillega7513
@oscarvillega7513 6 жыл бұрын
Yo apenas voy por el curso de Java v:
@elaprendiz7208
@elaprendiz7208 3 жыл бұрын
Despues de este video a mi hay que quitarme la computadora para no hacer partir un misil intercontinental nuclear. Espero una propuesta de la NASA para no hackearla.
@juanalbertopolancovargas244
@juanalbertopolancovargas244 4 жыл бұрын
Yo hice la multiplicación de forma rudimentaria sin estructura condicional , solo le iba indicando el lugar donde guardar cada multiplicación 😧
@user-fr6gn6vl2z
@user-fr6gn6vl2z 4 жыл бұрын
ya tengo los conocimientos necesarios para hackear la nasa
@enelcorazondeoptimus
@enelcorazondeoptimus 5 жыл бұрын
Hmm Álgebra.
@ElenixYT
@ElenixYT 2 жыл бұрын
sigo sin entender pk 22 espacios??
@level1agario
@level1agario 5 жыл бұрын
Creo que hay un error en el código. En las estructuras if-else al comparar matriz_resultante[0][0], matriz_resultante[1][0], matriz_resultante[0][1], matriz_resultante[1][1] con el valor 0 para ver si están vacías, ¿no debería ser mejor comparalo con null? De hecho al ejecutarlo varias veces, me salió esto en una de ellas: [ 3 ][ 3 ][ 0 ] [ 0 ][ 2 ] [ 9 ][ 0 ] [ 2 ][ 0 ][ 0 ] x [ 3 ][ 2 ] = [ 0 ][ 0 ] [ 0 ][ 2 ] Aquí se ve que, si al hacer la suma de las multiplicaciones da 0, el programa lo toma como vacío, mostrando valores incorrectos. La matriz resultante en vez de ser [ 9 ][ 0 ] [ 0 ][ 0 ] debería ser [ 9 ][ 12 ] [ 0 ][ 4 ] Agradecería poder aclarar esto y muchas gracias Ernesto por todo el esfuerzo que haces por llevar este curso adelante 👍
@ezequiel2519
@ezequiel2519 5 жыл бұрын
Hola, yo no puse el if-else, tampoco el i
@johnpc6413
@johnpc6413 4 жыл бұрын
me da el mismo error asi q tratare de programarlo de otra manera
@johnpc6413
@johnpc6413 4 жыл бұрын
LO RESOLVI COLOCANDO UN PEQUEÑO RETRASO CON HILOS EN LA matriz_resultante,ya q parece q al correrlo varias veces el programa resuelve tan rapido y no se sincroniza bueno eso creo.porq con el retraso que le hice ya no volvvi a ver ese error
@johnpc6413
@johnpc6413 4 жыл бұрын
@@ezequiel2519 correrlo varias veces y veras que si hace errores como obviar algunos digitos y a saltarse el cero
@434emm
@434emm 4 жыл бұрын
logré hacer un código de mierda luego de mucho esfuerzo, donde meto dos matrices de distinto tamaño y las lleno con números aleatorios y luego las multiplico... aquí dejaré el código por si a alguien le interesa xd import java.util.Scanner; public class MultiplicacionMatrices { //el número de filas debe ser igual al número de columnas public static void main(String[] args) { //[filas][columnas] Scanner texto = new Scanner(System.in); System.out.print("Filas de la Matriz #1: "); int fila_1 = texto.nextInt(); System.out.print("Columnas de la Matriz #1: "); int column_1 = texto.nextInt(); System.out.println(" La primera matríz es de " + fila_1 + " x " + column_1 + " "); System.out.print("Filas de la Matriz #2: "); int fila_2 = texto.nextInt(); System.out.print("Columnas de la Matriz #2: "); int column_2 = texto.nextInt(); System.out.println(" La segunda matríz es de " + fila_2 + " x " + column_2 + " "); System.out.print("Rango de números aleatorios: "); int r = texto.nextInt() + 1; /* int fila_1= ; int column_1= ; int fila_2= ; int column_2= ; int r = ; //Esto es para cuando quiera dejar de usar números aleatorios y comprobar que los calculos sí sean exactos */ int Matriz_1[][] = new int[fila_1][column_1]; int Matriz_2[][] = new int[fila_2][column_2]; int mult = 0; //llenando la primera matriz for (int i = 0; i < fila_1; i++) { for (int j = 0; j < column_1; j++) { Matriz_1[i][j] = (int) (Math.random() * r); } } //llenando la segunda matriz for (int i = 0; i < fila_2; i++) { for (int j = 0; j < column_2; j++) { Matriz_2[i][j] = (int) (Math.random() * r); } } if (column_1 == fila_2) { int Matriz_Resultante[][] = new int[fila_1][column_2]; for (int i = 0; i < column_2; i++) { for (int j = 0; j < fila_1; j++) { for (int k = 0; k < column_1; k++) { Matriz_Resultante[j][i] += (Matriz_1[j][k] * Matriz_2[k][i]); } } } //imprimiendo System.out.println(" Matriz 1:"); for (int i = 0; i < fila_1; i++) { for (int j = 0; j < column_1; j++) { System.out.print(Matriz_1[i][j] + " "); } System.out.println(""); } System.out.println(" Matriz 2:"); for (int i = 0; i < fila_2; i++) { for (int j = 0; j < column_2; j++) { System.out.print(Matriz_2[i][j] + " "); } System.out.println(""); } System.out.println(" Matriz resultante:"); for (int i = 0; i < fila_1; i++) { for (int j = 0; j < column_2; j++) { System.out.print(Matriz_Resultante[i][j] + " "); } System.out.println(""); } System.out.println(" "); if (fila_1 >= fila_2) { for (int i = 0; i < fila_1; i++) { for (int j = 0; j < column_1; j++) { if ((i >= fila_1) == false) { System.out.print("[ " + Matriz_1[i][j] + " ] "); } else { System.out.print(" "); } } if ((i == fila_1 / 2) == false) { System.out.print(" "); } else { System.out.print(" x ");//* } for (int j = 0; j < column_2; j++) { if ((i >= fila_2) == false) { System.out.print("[ " + Matriz_2[i][j] + " ] "); } else { System.out.print(" "); } } if ((i == fila_1 / 2) == false) { System.out.print(" "); } else { System.out.print(" = ");//= } for (int j = 0; j < column_2; j++) { if ((i >= fila_1) == false) { System.out.print("[ " + Matriz_Resultante[i][j] + " ] "); } } System.out.println(""); } } else if (fila_1 < fila_2) { //Esto es para cuando la segunda matriz tenga más filas y no se joda cuando se imprima for (int i = 0; i < fila_2; i++) { for (int j = 0; j < column_1; j++) { if ((i >= fila_1) == false) { System.out.print("[ " + Matriz_1[i][j] + " ] "); } else { System.out.print(" "); } } if ((i == fila_2 / 2) == false) { System.out.print(" "); } else { System.out.print(" x ");//* } for (int j = 0; j < column_2; j++) { if ((i >= fila_2) == false) { System.out.print("[ " + Matriz_2[i][j] + " ] "); } else { System.out.print(" "); } } if ((i == fila_1 / 2) == false) { System.out.print(" "); } else { System.out.print(" = ");//= } for (int j = 0; j < column_2; j++) { if ((i >= fila_1) == false) { System.out.print("[ " + Matriz_Resultante[i][j] + " ] "); } } System.out.println(""); } } } else { System.out.println("Estas matrices no se pueden multiplicar"); } } }
@luispulido4592
@luispulido4592 5 жыл бұрын
ayudenme necesito saber multiplicar matrices por el metodo gauss jordan
@kuachicqueh
@kuachicqueh 5 жыл бұрын
El método Gauss Jordan sirve para reducir matrices, es decir, para simplificarla y posteriormente resolverla. No es para multiplicar.
@joselimatu501
@joselimatu501 4 жыл бұрын
Una pregunta porque pone limite de 5 No entiendo
@ramirouffelmann3057
@ramirouffelmann3057 4 жыл бұрын
Para que solamente genere números aleatorios hasta 4, si pones 10 aparecerán valores entre 0 y 9
@davidleonidasbernabetorres7717
@davidleonidasbernabetorres7717 3 жыл бұрын
No jalo jajajaj’nt
@fabianortiz5946
@fabianortiz5946 4 жыл бұрын
joder me hace falta lógica
@lautycabrera8437
@lautycabrera8437 2 жыл бұрын
jajaj a la primera...no sale nada xd lpm
@roanbaga
@roanbaga Жыл бұрын
Creo que debes aprender a programar compañero, esa solución no te habría valido ni el 3 en un examen.
Curso Java Intermedio #32 | Interfaces gráficas con NetBeans
21:35
La Geekipedia De Ernesto
Рет қаралды 73 М.
Curso Java Intermedio #33 | Listas tipo pila en Java (Estructura de datos)
31:08
La Geekipedia De Ernesto
Рет қаралды 121 М.
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 21 МЛН
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 13 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 49 МЛН
Matrices en Java (declarar y recorrer una matriz)
11:53
Cecilia Avila
Рет қаралды 23 М.
Curso Java Intermedio #34 | Analizador sintáctico (Listas tipo pila en Java)
19:56
La Geekipedia De Ernesto
Рет қаралды 60 М.
Curso Java Intermedio #35 | Listas tipo cola en Java (Estructura de datos)
24:10
La Geekipedia De Ernesto
Рет қаралды 87 М.
Curso Java Intermedio #43 | Altas y Consultas a una base de datos
31:54
La Geekipedia De Ernesto
Рет қаралды 108 М.
55. Programación en Java || Matrices || Definición de matriz
10:33
Programación ATS
Рет қаралды 230 М.
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 21 МЛН