

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
En este documento se explica cómo definir y realizar el producto de dos matrices de dos dimensiones utilizando python. Se detalla el proceso de crear una matriz vacía, recorrerla con bucles for y rellenarla con ceros, luego sumar los productos de filas y columnas de las matrices originales para obtener el resultado. Se incluyen ejemplos de multiplicación correcta y incorrecta de matrices 3x3 y 2x3.
Tipo: Traducciones
Subido el 01/06/2019
1 / 3
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


Ejercicio 4. Producto de dos matrices de dos dimensiones
En primer lugar, definimos la función estableciendo dos parámetros de input ( def producto(matriz1,matriz2 ) y, a continuación, creamos una matriz vacía de la siguiente forma: matriz3=[] , que nos servirá para crear una segunda matriz vacía que tenga el número de filas de la matriz1 y el número de columnas de la matriz2 (puesto que es uno de los requisitos del producto de matrices).
En segundo lugar, creamos un bucle for que nos recorra los valores des de 0 hasta la longitud de la matriz1 mediante el parámetro j (teniendo en cuenta que, por definición, matriz1 es una lista de listas), es decir, el recorrido de j será por filas de la matriz1. Dentro del bucle usamos la función .append() para añadir tantos elementos vacíos cómo la longitud de matriz2 en su elemento 0, es decir, la longitud de la primera fila de matriz2, que corresponde a su número de columnas. Así obtenemos la matriz vacía de las dimensiones resultantes del producto de las dos matrices ( matriz3 ).
A continuación, crearemos un total de 3 bucles for integrados uno dentro del otro. El primero tomará unos valores de i tales irán desde 0 hasta la longitud de la matriz uno (recorre la matriz por filas). El siguiente for , dentro del anterior, nos recorrerá la matriz por columnas de la siguiente manera: j in range la longitud del primer elemento de la lista de listas matriz2. En definitiva, estos dos bucles seguidos nos servirán para rellenar nuestra matriz3 vacía creada previamente con ceros de manera que la posición [i][j] , de la matriz3 sea 0. En cada iteración se rellena con un 0 la posición correspondiente a i (número de filas) y a j (número de columnas).
El último bucle for está integrado dentro del anterior, y nos recorre por columnas matriz mediante la variable k. En cada iteración se actualiza el contenido de matriz3 en las posiciones [i] , [j] (que a su vez también cambian a cada iteración) de manera que se suma el resultado de multiplicar el elemento [i] , [k] de matriz1 por el elemento [k] , [j] de matriz2 más el valor de matriz3 de la iteración anterior (multiplica los elementos de las filas de matriz1 por los elementos de las columnas de matriz2 y los suma para obtener la posición [i] , [j] de matriz3 ).
Obtenemos el resultado por pantalla mediante return (matriz3).
La creación de las matrices, para evitar errores de cambio de formato ( str comúnmente), la definimos dentro del main creando para cada matriz el número de filas y el de columnas. También pediremos los elementos de cada matriz mediante un bucle for de tal manera que se recorra la matriz por filas añadiendo un elemento vacío con la función .append que se rellenará con el número que el usuario introduzca hasta el número de columnas concretp mediante otro bucle for que nos recorre la matriz por columnas. Seguimos el mismo procedimiento para obtener las dos matrices y creamos un bucle if que sólo nos acepte las matrices si tienen el mismo número de filas que de columnas. Si esa condición se cumple (columnas1==filas2), se realiza el producto, en caso contrario, se muestra “La primera matriz debe tener el mismo número de columnas que el número de columnas de la segunda.
Juego de pruebas
Multiplicaremos dos matrices 3x3, una 2x3 por una 3x3 y una 2x3 por una 2x3.
Multiplicación correcta para las dos 3x3.
Funciona correctamente para una 2x3 por una 3x3.