Rappresentazione Python di matrici come liste di liste. Ad esempio
una matrice
\begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
10 & 11 & 12
\end{bmatrix}
viene rappresentata in Python come la lista
[[1,2,3], [4,5,6], [7,8,9], [10,11,12]]
- creazione di una matrice con valori uguali;
- calcolo della matrice trasposta.
import random
def matrixcreate(r,c,fillvalue=0):
M=[]
for i in range(r):
M.append( [fillvalue]*c)
return M
def matrixsize(A):
return len(A),len(A[0])
def matrixtranspose(A):
r,c = matrixsize(A)
T = matrixcreate(c,r)
for i in range(c):
for j in range(r):
T[i][j] = A[j][i]
return T
def matrixrandomfill(A):
r,c = matrixsize(A)
for i in range(r):
for j in range(c):
A[i][j] = random.randint(0,100)
A = matrixcreate(4,2)
matrixrandomfill(A)
B = matrixtranspose(A)
print(A)
print(B)
[[16, 92], [77, 52], [76, 34], [51, 42]]
[[16, 77, 76, 51], [92, 52, 34, 42]]
Negli esercizi di questo corso riguardanti le matrici, una matrice
di \(R\) righe e \(C\) colonne sarà tipicamente rappresentata come una
lista contenente \(R\) liste, ognuna contenente a sua volta
\(C\) elementi. Tipicamente con \(R \geq 1\) e \(C \geq 1\).
Esercizio: scrivete una funzione che restituisca True
se
l'argomento è una matrice secondo le condizioni spiegate nel
paragrafo precedente. E che restituisca False
altrimenti.
Lavoro assegnato:
- paragrafi 3.9, 5.8, 5.9 e 5.10 (Pensare in Python);
- Capitolo 7 e 8 (Appunti su algoritmi e complessità).