Python - Creando Matrices Dinámicas

#40 Ejemplos de Matrices en Python: #1. Matriz vacía: matriz_vacia = [] print(matriz_vacia) #2. Matriz de una fila con tres elementos: matriz_una_fila = [1, 2, 3] print(matriz_una_fila) #3. Matriz de dos filas y tres columnas: matriz_dos_filas = [[1, 2, 3], [4, 5, 6]] print(matriz_dos_filas) #4. Matriz de tres filas y dos columnas: matriz_tres_filas = [[1, 2], [3, 4], [5, 6]] print(matriz_tres_filas) #5. Matriz de tamaño 2x3 con valores predefinidos: matriz2x3 = [[1, 2, 3], [4, 5, 6]] print(matriz2x3) #6. Matriz de tamaño 3x2 con valores predefinidos: matriz3x2 = [[1, 2], [3, 4], [5, 6]] print(matriz3x2) #7. Usando una comprensión de lista: matriz3x3 = [[0 for j in range(3)] for i in range(3)] print(matriz3x3) #8. Matriz de tamaño 2x3 con valores aleatorios: import random matriz2x3 = [[random.randint(1, 10) for j in range(3)] for i in range(2)] print(matriz2x3) #9. Matriz de tamaño 3x2 con valores aleatorios: import random matriz3x2 = [[random.randint(1, 10) for j in range(2)] for i in range(3)] print(matriz3x2) #10. Matriz de tamaño 2x3 con valores ingresados por el usuario: matriz = [] for i in range(2): fila = [] for j in range(3): valor = int(input("Ingrese el valor para la posición ({}, {}): ".format(i, j))) fila.append(valor) matriz.append(fila) #11. Matriz de tamaño 3x2 con valores ingresados por el usuario: matriz = [] for i in range(3): fila = [] for j in range(2): valor = int(input("Ingrese el valor para la posición ({}, {}): ".format(i, j))) fila.append(valor) matriz.append(fila) #12. Crear una matriz vacía y agregar elementos de forma dinámica: filas = 3 columnas = 3 matriz = [] for i in range(filas): fila = [] for j in range(columnas): fila.append(0) matriz.append(fila) print(matriz) #13. Crear una matriz a partir de una lista de listas: lista = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] matriz = [] for fila in lista: matriz.append(fila) print(matriz) #14. Crear una matriz a partir de una lista de tuplas: lista = [(1, 2, 3), (4, 5, 6), (7, 8, 9)] matriz = [] for tupla in lista: fila = list(tupla) matriz.append(fila) print(matriz) #15. Crear una matriz a partir de un archivo de texto: archivo = open("matriz.txt", "r") matriz = [] for linea in archivo: fila = linea.strip().split(",") fila = [int(elemento) for elemento in fila] matriz.append(fila) archivo.close() print(matriz) #16. Crear una matriz a partir de una entrada de usuario: filas = int(input("Ingrese el número de filas: ")) columnas = int(input("Ingrese el número de columnas: ")) matriz = [] for i in range(filas): fila = [] for j in range(columnas): elemento = int(input("Ingrese el elemento ({}, {}): ".format(i, j))) fila.append(elemento) matriz.append(fila) print(matriz) #17. Imprimir una matriz de ceros: filas = 3 columnas = 3 matriz = [] for i in range(filas): fila = [] for j in range(columnas): fila.append(0) matriz.append(fila) print(matriz) #18. Imprimir una matriz identidad: filas = 3 columnas = 3 matriz = [] for i in range(filas): fila = [] for j in range(columnas): if i == j: fila.append(1) else: fila.append(0) matriz.append(fila) print(matriz) #19. Matriz identidad de tamaño n: def matriz_identidad(n): matriz = [] for i in range(n): fila = [0] * n fila[i] = 1 matriz.append(fila) return matriz #20. Matriz diagonal con valores dados: def matriz_diagonal(n, valor): matriz = [] for i in range(n): fila = [0] * n fila[i] = valor matriz.append(fila) return matriz #21. Matriz triangular superior con valores dados: def matriz_triangular_superior(n, valor): matriz = [] for i in range(n): fila = [0] * n for j in range(i, n): fila[j] = valor matriz.append(fila) return matriz #22. Matriz triangular inferior con valores dados: def matriz_triangular_inferior(n, valor): matriz = [] for i in range(n): fila = [0] * n for j in range(i + 1): fila[j] = valor matriz.append(fila) return matriz #23. Matriz aleatoria de tamaño n x m: import random def matriz_aleatoria(n, m): matriz = [] for i in range(n): fila = [] for j in range(m): fila.append(random.randint(0, 9)) matriz.append(fila) return matriz #24. Matriz transpuesta de una matriz dada: def matriz_transpuesta(matriz): filas = len(matriz) columnas = len(matriz[0]) matriz_transpuesta = [] for j in range(columnas): fila = [] for i in range(filas): fila.append(matriz[i][j]) matriz_transpuesta.append(fila) return matriz_transpuesta #25. Suma de dos matrices: def suma_matrices(matriz1, matriz2): filas = len(matriz1) columnas = len(matriz1[0]) resultado = [] for i in range(filas): fila = [] for j in range(columnas): fila.append(matriz1[i][j] + matriz2[i][j]) resultado.append(fila) return resultado #26. Resta de dos matrices: def resta_matrices(matriz1, matriz2): filas = len(matriz1) columnas = len(matriz1[0]) resultado = [] for i in range(filas): fila = [] for j in range(columnas): fila.append(matriz1[i][j] - matriz2[i][j]) resultado.append(fila) return resultado #27. Multiplicación por un escalar: def multiplicacion_escalar(matriz, escalar): filas = len(matriz) columnas = len(matriz[0]) resultado = [] for i in range(filas): fila = [] for j in range(columnas): fila.append(matriz[i][j] * escalar) resultado.append(fila) return resultado #28. Producto de dos matrices: def producto_matrices(matriz1, matriz2): filas1 = len(matriz1) columnas1 = len(matriz1[0]) filas2 = len(matriz2) columnas2 = len(matriz2[0]) if columnas1 != filas2: return None resultado = [] for i in range(filas1): fila = [] for j in range(columnas2): suma = 0 for k in range(columnas1): suma += matriz1[i][k] * matriz2[k][j] fila.append(suma) resultado.append(fila) return resultado #29. Determinante de una matriz cuadrada: def determinante(matriz): n = len(matriz) if n == 1: return matriz[0][0] elif n == 2: return matriz[0][0] * matriz[1][1] - matriz[0][1] * matriz[1][0] else: det = 0 for j in range(n): submatriz = [fila[:j] + fila[j+1:] for fila in matriz[1:]] det += ((-1) ** j) * matriz[0][j] * determinante(submatriz) return det #30. Matriz inversa de una matriz cuadrada: def matriz_inversa(matriz): n = len(matriz) det = determinante(matriz) if det == 0: return None if n == 1: return [[1 / matriz[0][0]]] cofactores = [] for i in range(n): fila = [] for j in range(n): submatriz = [fila[:j] + fila[j+1:] for fila in matriz[:i] + matriz[i+1:]] cofactor = ((-1) ** (i+j)) * determinante(submatriz) fila.append(cofactor) cofactores.append(fila) adjunta = matriz_transpuesta(cofactores) inversa = multiplicacion_escalar(adjunta, 1 / det) return inversa #31. Matriz de cofactores de una matriz cuadrada: def matriz_cofactores(matriz): n = len(matriz) cofactores = [] for i in range(n): fila = [] for j in range(n): submatriz = [fila[:j] + fila[j+1:] for fila in matriz[:i] + matriz[i+1:]] cofactor = ((-1) ** (i+j)) * determinante(submatriz) fila.append(cofactor) cofactores.append(fila) return cofactores #32. Matriz adjunta de una matriz cuadrada: def matriz_adjunta(matriz): cofactores = matriz_cofactores(matriz) adjunta = matriz_transpuesta(cofactores) return adjunta #33. Matriz simétrica aleatoria de tamaño n x n: def matriz_simetrica(n): matriz = [] for i in range(n): fila = [] for j in range(i+1): fila.append(random.randint(0, 9)) for j in range(i+1, n): fila.append(matriz[j][i]) matriz.append(fila) return matriz #34. Matriz de Hilbert de tamaño n x n: def matriz_hilbert(n): matriz = [] for i in range(1, n+1): fila = [] for j in range(1, n+1): elemento = 1 / (i + j - 1) fila.append(elemento) matriz.append(fila) return matriz #35. Matriz de Vandermonde de tamaño n x m: def matriz_vandermonde(n, m): matriz = [] for i in range(n): fila = [] for j in range(m): elemento = i ** j fila.append(elemento) matriz.append(fila) return matriz #36. Matriz de Toeplitz de tamaño n x m con valores dados: def matriz_toeplitz(n, m, valores): matriz = [] for i in range(n): fila = [] for j in range(m): if i == 0: elemento = valores[j] elif j == 0: elemento = valores[i] else: elemento = matriz[i-1][j-1] fila.append(elemento) matriz.append(fila) return matriz #37. Matriz de circulante de tamaño n x n con valores dados: def matriz_circulante(n, valores): matriz = [] for i in range(n): fila = [] for j in range(n): elemento = valores[(i-j) % n] fila.append(elemento) matriz.append(fila) return matriz #38. Matriz de rotación de tamaño 2 x 2 con ángulo dado: import math def rotation_matrix(angle): rad = math.radians(angle) cos = math.cos(rad) sin = math.sin(rad) return [[cos, -sin], [sin, cos]] angle = 45 rot_matrix = rotation_matrix(angle) print(rot_matrix) #39. Imprimiendo Matrices 1 import random def imprimir_matrices(): # Definimos el tamaño de la lista y las matrices num_matrices = 5 matrix_size = (3, 3) # Creamos la lista de matrices aleatorias matrices = [] for _ in range(num_matrices): matrix = [] for i in range(matrix_size[0]): row = [] for j in range(matrix_size[1]): row.append(random.randint(0, 9)) matrix.append(row) matrices.append(matrix) print(matrices) for matriz in matrices: print('Matriz:') for fila in matriz: for col in fila: print(col, end=' ') print() print() imprimir_matrices() #40. Imprimiendo Matrices 2 import random def imprimir_fila(fila): for col in fila: print(col, end=' ') def imprimir_matriz(matriz): for fila in matriz: imprimir_fila(fila) print() def imprimir_matrices(matrices): for matriz in matrices: print('Matriz:') imprimir_matriz(matriz) print() # Definimos el tamaño de la lista y las matrices num_matrices = 5 matrix_size = (3, 3) # Creamos la lista de matrices aleatorias matrices = [] for _ in range(num_matrices): matrix = [] for i in range(matrix_size[0]): row = [] for j in range(matrix_size[1]): row.append(random.randint(0, 9)) matrix.append(row) matrices.append(matrix) # Imprimimos la lista de matrices print(matrices) imprimir_matrices(matrices)

Geogebra Python