Python - Creando Matrices Dinámicas

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

Information: Python - Creando Matrices Dinámicas