¿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!
@brenjohnson45836 жыл бұрын
La Geekipedia De Ernesto Hola Ernesto.. te pregunto, como se desactivan?. Gracias
@MARQUITOSGUALACBA6 жыл бұрын
Si, había que configurarlo, gracias
@edgarfhenriquez99744 жыл бұрын
Lo hice en 75 pasos. Estoy Aprendiendo
@marcmartorell87804 жыл бұрын
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
@francogiova88182 жыл бұрын
muy buena forma de hacerlo, yo me la complique usando dos fors, con 3 fors es mucho mas sencillo jajaja
@JSilvaCP6 жыл бұрын
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]; } } }
@federicostoppo11176 жыл бұрын
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.
@JSilvaCP6 жыл бұрын
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];
@federicostoppo11176 жыл бұрын
Jhony gracias por tu ayuda amigo!! Ahora lo entendí bien!!!!
@fernandod55036 жыл бұрын
mucho mejor asi.
@michaelmerchan70875 жыл бұрын
Muy buen aporte. Estaba tratando de optimizar el código y me encontré con estas lineas, me resulto de ayuda.Gracias
@Dannrar5 жыл бұрын
Que estos ejercicios son sumamente sencillos!? Madre mía!... Si estoy echando humo por la cabeza! Jajaja....!!
@enriquebarragan2124 жыл бұрын
xD Sólo practica un poco más :D
@ignaciioGo6 жыл бұрын
eres un crack Neto! Eres mi maestro desd que empece a ver tus tutoriales
@ronpb39434 жыл бұрын
de aquí a 10 años seré un pvto pro en esto, empece gracias a ti Ernesto
@DanViL1992 Жыл бұрын
Hola, dime que lo lograste en 2años...
@sergiocomes4353 жыл бұрын
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.
@orlando68042 жыл бұрын
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.
@benjaleal48726 жыл бұрын
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!!!!!
@LaGeekipediaDeErnesto6 жыл бұрын
¡Excelente!, por supuesto que seguiré creando más contenido. Saludos.
@rodrigosolari81034 жыл бұрын
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_uwu53424 жыл бұрын
2020 todavia funciona jajaja, buen video, me salvaste
@nicolasscattularo96793 жыл бұрын
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!
@thedarkside2285 жыл бұрын
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é.
@enriquebarragan2124 жыл бұрын
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
@lucassanchez68694 жыл бұрын
@@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
@lucassanchez68694 жыл бұрын
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 ?
@rafaelhernandezgarcia87745 жыл бұрын
gracias a tu gran explicacion y video se me facilito modificarlo para uno de 3 por 3
@karlozpuyol33826 жыл бұрын
Excelente sigo tus videos desde el basico..... y seguire con este.. Gracias le doy like...y suscrito...
@extreemmaster42406 жыл бұрын
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(""); }
@luisgera224 жыл бұрын
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
@erikrtk8683 жыл бұрын
Que explicación tan sublime 👏
@deodato74444 жыл бұрын
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-landjs3 жыл бұрын
Excelente tutorial!!! Me encantan estos ejercicios :D
@juancamiloparedeszamora84819 ай бұрын
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.
@gilbertoflorescastillo96144 жыл бұрын
Espero algún día tener esa lógica de programación porque la verdad se me dificulto mucho xD
@erikjulianmartinezcrispin70243 жыл бұрын
excelente video
@christianlazo4735 жыл бұрын
En este video se me ha quemado el cerebro xD, Gran contenido muchas gracias, te sigo desde el curso desde 0
@erikgarcia95456 жыл бұрын
Excelente,. Lo mejor
@danielcampos40624 жыл бұрын
Mi cabeza explotó con este video
@ElRincóndelasFantasías10 ай бұрын
😂😂
@mariaguevara51775 жыл бұрын
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.
@xxconyutoxx5 жыл бұрын
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.
@GianmarcoContreras4 жыл бұрын
Me detuvo un momento a analizar el ejercicio y me di cuenta que no es tan complicado como parece.
@pamelamuralles93744 жыл бұрын
LO ADOROOOOOO Gracias
@stevenjm84443 жыл бұрын
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(""); } } }
@clementesoza41234 жыл бұрын
Gracias!
@ThisAbubu6 жыл бұрын
Ya esta ya hackeo la nasa :v
@DDD_04_086 жыл бұрын
jajajajajjaja eso mismo pense
@jorgearequipa6445 жыл бұрын
genial amigo exelente explicacion in like.
@MrDanikho5 жыл бұрын
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!
@oscargm19794 жыл бұрын
Maquina :) Gracias
@jacksonprieto84592 жыл бұрын
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?
@jacksonprieto84592 жыл бұрын
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?
@janof216 жыл бұрын
un curso de PHP estaria muy bueno, Gracias Ernesto
@LaGeekipediaDeErnesto6 жыл бұрын
¡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.
@jeferos3935 жыл бұрын
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?
@maurizioros31556 жыл бұрын
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(""); } }
@katsu71886 жыл бұрын
¡¡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!
@maurizioros31556 жыл бұрын
Verdad! era una tonteria, en la linea 24 debes poner "col < columnas", yo copiando y pegando puse "col
@angelelias.97893 жыл бұрын
Gracias, me salvaste el pellejo con este código. 👍🏼
@kilokoins13362 жыл бұрын
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]); }
@Silperscom5 жыл бұрын
Rayos, creo que me estoy volviendo loco y, así quiero llegar a marte...
@nandodo2034 жыл бұрын
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(""); } } } }
@hiramjairramirezsanchez39523 жыл бұрын
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(""); } } }
@josepared72435 жыл бұрын
se me complico un poquito pero ya nada gracias lo analice y todo super facil ernesto
@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).
@allker11922 ай бұрын
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
@tomasyedid31404 жыл бұрын
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
@MARQUITOSGUALACBA6 жыл бұрын
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
@carloszambrano85486 жыл бұрын
escribes for y tabulas y listo
@federicostoppo11176 жыл бұрын
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.
@juanignacio4095 жыл бұрын
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.
@juanfraucastro4 жыл бұрын
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
@juanfraucastro4 жыл бұрын
@@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.
@juanignacio4094 жыл бұрын
@@juanfraucastro Es cierto!! Gracias por avisar, genial la técnica que pusiste arriba!! Saludos compañero!!
@AlejandroSanchez-vt2nj6 жыл бұрын
👌 ok
@auron-mono67253 жыл бұрын
-----------------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-yt1og4 жыл бұрын
Yo use for como algunos colegas por aqui para la multiplicacion. Pero para imprimir use 24 System.out.print jajajajaja xD
@alfredoaristizbal914 жыл бұрын
JAJAJAJAJAJA x2. Me sentí estúpido al ver que se podía hacer con un for
es casi lo mismo que java xd entonces creo que sobra
@juanmasoler75656 жыл бұрын
¿Para qué se suele isar esto?
@alvaroarratialeonardini71166 жыл бұрын
Para Ingenieria sirve bastante.
@darkjoker21906 жыл бұрын
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.
@carlosmejia75454 жыл бұрын
ufffff ni se por donde empezar no encuentro un punto para empezar
@codigobinario1354 жыл бұрын
Y si es una matriz de 2*2 seguiría los mismos pasos ?
@ACm3mphis4 жыл бұрын
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.
@guillermocotrinavelasquez33015 жыл бұрын
M parecio complicado darle forma al programa que la programacion del ejercicio
@GabrielRodriguez-ok7qh8 ай бұрын
Pero si quiero hacer un programa mas dinamico no me funcionaria porque estoy llenando la matriz resultante manualmente.... Ayuda please 😅
@nicoconi23156 жыл бұрын
Cuando llegaremos a bases de datos :(
@katsu71886 жыл бұрын
sdfsd Pensé que era el único que deseaba eso mientras veía esto :3
@oscarvillega75136 жыл бұрын
Yo apenas voy por el curso de Java v:
@elaprendiz72083 жыл бұрын
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.
@juanalbertopolancovargas2444 жыл бұрын
Yo hice la multiplicación de forma rudimentaria sin estructura condicional , solo le iba indicando el lugar donde guardar cada multiplicación 😧
@user-fr6gn6vl2z4 жыл бұрын
ya tengo los conocimientos necesarios para hackear la nasa
@enelcorazondeoptimus5 жыл бұрын
Hmm Álgebra.
@ElenixYT2 жыл бұрын
sigo sin entender pk 22 espacios??
@level1agario5 жыл бұрын
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 👍
@ezequiel25195 жыл бұрын
Hola, yo no puse el if-else, tampoco el i
@johnpc64134 жыл бұрын
me da el mismo error asi q tratare de programarlo de otra manera
@johnpc64134 жыл бұрын
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
@johnpc64134 жыл бұрын
@@ezequiel2519 correrlo varias veces y veras que si hace errores como obviar algunos digitos y a saltarse el cero
@434emm4 жыл бұрын
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"); } } }
@luispulido45925 жыл бұрын
ayudenme necesito saber multiplicar matrices por el metodo gauss jordan
@kuachicqueh5 жыл бұрын
El método Gauss Jordan sirve para reducir matrices, es decir, para simplificarla y posteriormente resolverla. No es para multiplicar.
@joselimatu5014 жыл бұрын
Una pregunta porque pone limite de 5 No entiendo
@ramirouffelmann30574 жыл бұрын
Para que solamente genere números aleatorios hasta 4, si pones 10 aparecerán valores entre 0 y 9
@davidleonidasbernabetorres77173 жыл бұрын
No jalo jajajaj’nt
@fabianortiz59464 жыл бұрын
joder me hace falta lógica
@lautycabrera84372 жыл бұрын
jajaj a la primera...no sale nada xd lpm
@roanbaga Жыл бұрын
Creo que debes aprender a programar compañero, esa solución no te habría valido ni el 3 en un examen.