Está en la página 1de 34

Matrices

Marks Calderón Niquin

1
Matrices(arreglo bidimensional)
A 0 1 2 3
• Se le llama matriz o tabla. 35 56 84 12
0
• Por ejemplo: la matriz A  1 43 21 16 52
• Observer el arreglo e identifique: 2 15 28 36 18
3
• Cantidad de elementos: 16 45 69 53 25
• Cantidad de filas: 4
• Cantidade de columnas: 4 4x4
• Dimensión: 4x4

A[2][3]  18
A[1][1]  21
A[3][3]  25

2
Declaración

nombre_matriz = []
Para inicializar la matriz inicia como una lista

3
Inicialización
• Se puede crear e inicializar la matriz al mismo tiempo.

nom_matriz = [[valor, valor,…], [valor, valor…], ….]

Ejemplos:
• A = [[35,56,84,12], [43,21,16,52], [81,23,14,19]]
• turno = [[ 'm', 't', 't’ ], ['t', 'n', 'm’ ]]
• ciudades = [[ "Ica", "ima“], ["Ilo", "Loja "]]

4
Inicialización
A = [[35,56,84,12], [43,21,16,52], [81,23,14,19]]
print(A)
turno = [[ 'm', 't', 't' ], ['t', 'n', 'm' ]]
print(turno)
ciudades = [[ "Ica", "Lima"], ["Ilo", "Loja "]]
print(ciudades)
XY = [[1,2,"hola"], [5.6, 10, 'b', 19]]
print(XY)

5
Ejemplos de inicialización
Ejemplo 1 Ejemplo 2
10000
01000
00100 12345
00010
00001 21014
M = [[1,0,0,0,0], 30103
[0,1,0,0,0],
[0,0,1,0,0],
41012
[0,0,0,1,0], 54321
[0,0,0,0,1]]
M = [[1,2,3,4,5], [2,1,0,1,4],[3,0,1,0,3],[4,1,0,1,2],
[5,4,3,2,1]]

6
Acceso de un elemento
El acceso a un elemento en particular del arreglo se da en función al nombre de la matriz,
su fila y su columna.
El acceder a un elemento del arreglo permite utilizar el valor que esta contenido en el.
nombre_matriz[fila][columna]

Ejemplo : Indique que valor tiene almacenado cada elemento que se indica a
continuación.

A[2][3] turno[1][2] ciudades[0][1]

7
Inicialización desde 0
n = int(input("Ingrese n: "))
M = []
• Dado el valor de n crear la matriz
 
N=5 for i in range(n):#recorre el numero de
filas
00000 L = [] #crear fila vacia
11111 for j in range(n):
if i%2 == 0:
00000 L.append(0)
11111 else:
L.append(1)
00000
#agregar fila a la matriz
M.append(L)
#imprimir M
print(M)
 

8
Recordando

El manejo de arreglos bidimensionales, obliga a recordar el funcionamiento de los


procesos repetitivos anidados
-----------;
for f in range(5):#recorre las filas
for c in range(4): #recorre las columnas de cada fila
----------
----------

-----------
-----------

------------
9
Recorriendo una matriz
0 1 2 3
A = [[35,56,84,12],[43,21,16,52], [81,23,14,19]]
n = len(A) #cuenta las filas 35 56 84 12
0
m = len(A[0]) #cuenta las columnas 1 43 21 16 52
  2 81 23 14 19
for i in range(n):
for j in range(m):
print(A[i][j], end=' ')
print()

10
Suma elementos de una matriz
0 1 2 3
A = [[35,56,84,12],[43,21,16,52], [81,23,14,19]] 35 56 84 12
0
n = len(A) #cuenta las filas 1 43 21 16 52
m = len(A[0]) #cuenta las columnas 2 81 23 14 19
suma = 0
for i in range(n):
for j in range(m):
suma += A[i][j]# suma = suma + A[i][j]
print("La suma es: ", suma)

11
Números aleatorios en matriz

import random
n = int(input("Ingrese n: "))
M = []
 
for i in range(n):
L = []
for j in range(n):
L.append(random.randint(0,100))
M.append(L)
print(M)

12
Tarea
• Creada una matriz de nxn con números aleatorios entre 0 -100 desarrollar:
1. Suma de todos los elementos de filas impares.

2. Suma de solo los elementos pares de una matriz

3. Suma de los elementos de la diagonal de una matriz, es decir A[0][0]+A[1][1]+…..

4. Suma de solo los elementos de las columnas pares.

5. Suma de elementos de posición fila y columna impar

13
Promedio elementos

A = [[35,56,84,12],[43,21,16,52], [81,23,14,19]]
n = len(A) #cuenta las filas
m = len(A[0]) #cuenta las columnas
suma = 0
for i in range(n):
for j in range(m):
suma += A[i][j]# suma = suma + A[i][j]
prom = suma / (n*m)
print("La suma es: ", suma)
print("El promedio es: ", prom)

14
Ejemplo1: crear una matriz identidad

n = int(input("Ingrese n: "))
I = []
for i in range(n):
F = []
for j in range(n):
if i == j:
F.append(1)
else:
F.append(0)
I.append(F)
for i in range(n):
for j in range(n):
print(I[i][j],end = ' ')
print()
 
15
Ejemplo 2: crear patrón
0 1 2 3 n = int(input("Ingrese n: "))
0 0 0 1 I = []
0
for i in range(n):
1 0 0 1 0 F = []
for j in range(n):
0 1 0 0 if (i + j)== (n-1):
2
1 0 0 0 F.append(1)
3 else:
F.append(0)
I.append(F)
for i in range(n):
for j in range(n):
print(I[i][j],end = ' ')
print()
 

16
Ejemplo 3: patrón
0 1 2 3 n = int(input("Ingrese n: "))
1 0 0 1 I = []
0
for i in range(n):
1 0 1 1 0 F = []
for j in range(n):
2 0 1 1 0 if ((i==j) or ((i + j)== (n-1))):
F.append(1)
1 0 0 1 else:
3
F.append(0)
I.append(F)
for i in range(n):
for j in range(n):
print(I[i][j],end = ' ')
print()
 

17
Ejemplo2: patrón
 
A= n = int(input("Ingrese n: "))
I = []
11111
for i in range(n):
10001
10001 F = []
10001 for j in range(n):
11111 if (i == 0 or i == (n-1)) or ( j==
0 or j == (n-1)):
0 1 2 3 4 F.append(1)
else:
0 1 1 1 1 1
F.append(0)
1 1 0 0 0 1 I.append(F)
for i in range(n):
2 1 0 0 0 1
for j in range(n):
3 1 0 0 0 1 print(I[i][j],end = ' ')
print()
4 1 1 1 1 1

18
Tarea
1 4

3 4

19
Arreglos y funciones

20
Arreglos como parámetros de funciones
Retorna: tipo_dato var

def nombre_funcion(par1,par2, ……):

return var #opcional

21
Ejemplo mostrar matriz

22
Tarea
Dada una matriz aleatoria cree una función para:

1. Sumar todos los elementos impares y retornar el valor

2. Sumar la diagonal de la matriz y retornar

3. Contar cuantos de los elementos son múltiplos de 5

4. Sumar todos los elementos de posición impar y retornar el valor

23
Ejemplo: mostrar un arreglo

import random
def mostrar_array(A):
for i in A:
print(i, end = ' ')

#genera una lista aleatoria


L= random.sample(range(0,101), 10)
mostrar_array(L)

24
Ejemplo: inicializar arreglo con ceros

def fill_ceros(n):
A = [ 0 for i in range(n)]
return A
 
B = fill_ceros(10)
print(B)

25
Ejemplo: inicializar arreglo con números aleatorios con
un rango entre ini y fin

import random
 
def fijar_aleatorios(n, ini, fin):
A = [ random.randint(ini, fin) for i in range(n)]
return A
 
C = fijar_aleatorios(10, 0, 100)
print(C)

26
Matriz aleatoria de nxm aleatoria entre ini y fin

import random A = matriz_aleatoria(5,6,0,100)


def matriz_aleatoria(n,m, ini, fin): print(A)
M = [] B = matriz_comp_alea(5,6,0,100)
for i in range(n):
print(B)
F = []
for j in range(m):
F.append(random.randint(ini,fin))
M.append(F)
return M
 
def matriz_comp_alea(n,m, ini, fin):
M = [ [random.randint(ini,fin) for j in
range(m)] for i in range(n)]
return M

27
Matriz aleatoria de nxm aleatoria entre ini y fin

def showNormal(M):
for f in M:
for c in f:
print(c, end = ' ')
print()

def showComp(M):
[[[print(c, end=' ') for c in f] ,
print()] for f in M]
 
A = matriz_aleatoria(5,6,0,100)
showNormal(A)
print("Otra version")
showComp(A)

28
Ejemplo: suma de dos arreglos elemento a elemento
A 1 2 6 3 4
B 6 3 2 5 10
C 7 5 8 8 14

29
Tarea

1. Dados dos listas calcular el producto uno a


uno y colocarlo en un arreglo para retornar
2. Dados dos listas calcular el producto punto
para retornar
3. Dados dos listas retornar el mayor elemento
entre ellas dos.
4. Dado dos listas retornar la lista con los
residuos de cada elemento de la primera lista
con la segunda. Ejemplo:
A = [10,15,9]
B = [2,4,4]
>> [0,3,1]

30
Matrices como parámetros de funciones
Entradas: tipo_dato par1

Retorna: tipo_dato var

tipo_dato nombre_funcion(tipo_dato par1[ nfil][ncol], tipo_dato nfil, tipo_dato ncol, ……){

return var; //opcional

31
Multiplicación de matrices
La multiplicación de matrices es una operación básica en álgebra lineal
donde:
pseudo
● Multiplica las matrices Anxp x Bpxm = Cnxm
● La multiplicación solo se da si cumplen las dimensiones
Entrada:
- Matrices Anxp y Bpxm
- Crear matrix Cnxm

para i=1 hasta n


para j=1 hasta p
Ci,j=0
para k=1 hasta m
Ci,j += Ai, k * Bk, j
fin_para
fin_para
fin_para

32
Gracias

33
THANK YOU

34

También podría gustarte