Matriser

Video(NTNU)

Innhold

  • Matriser er egentlig bare todimensjonale lister.
  • Nummerering – Tenk kinosal – rad og plass.
  • Prinsipp – [liste1, liste2, liste3]
  • matrisenavn[y][x]

Prinsipp for matrise:

Eksempel:


# Test av flerdimensjonal liste

mat1 = [
[1, 2, 3], 
[4, 5, 6], 
[7, 8, 9]
]

print(mat1[1]) # [4, 5, 6]

print(mat1[1][1]) # 5

print(mat1) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

print(type(mat1)) # <class 'list'>

 

 

Iterering over innhold:

Opprette og printe ut gangetabell:


mat_1 = []

for i in range(1, 11):
    rad = []
    for j in range(1, 11):
        rad.append(i * j)
    mat_1.append(rad)
    
for rad in mat_1:
    for tall in rad:
        print(str(tall).rjust(5), end="")
    print()

 

Programkode til filmen:


# Vi oppretter en matrise med gangetabellen for tallene 1 til 10.

matrise = []

for i in range(1, 11):
    rad = []
    for j in range(1, 11):
        rad.append(i * j)
    matrise.append(rad)


# Fin printing av matrisa, der vi bruk. streng.rjust()-funksjonen

for rad in matrise:
    for tall in rad:
        print(str(tall).rjust(5), end="")
    print()


# Deretter sletter vi elementer og rader fra matrisa

del matrise[0][1]
del matrise[0][8]
del matrise[2] # Legg merke til at her slettes faktisk en hel rad
del matrise[4][2]
del matrise[3][2]
del matrise[8][9]


# Nå vil vi endre alle tall i matrisa til 0 istedet, men nå er det
# ikke lenger sånn at alle rader har lengde 10. Derfor passer vi på
# å bruke len(matrise) og len(rad) [samme som len(matrise[i])] i
# for-løkkene.

for i in range(len(matrise)):
    rad = matrise[i]
    for j in range(len(rad)):
        rad[j] = 0
        # Merk at her vil matrise[i][j] = 0 gi akk. samme resultat!


# Til slutt printer vi matrisa igjen - samme kode som tidligere!
print("\n")

for rad in matrise:
    for tall in rad:
        print(str(tall).rjust(5), end="")
    print()