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 r in range(R):
for c in range(C):
T[c][r] = A[r][c]
return T
def matrixrandomfill(A):
R,C = matrixsize(A)
for r in range(R):
for c in range(C):
A[r][c] = random.randint(0,100)
A = matrixcreate(4,2)
matrixrandomfill(A)
B = matrixtranspose(A)
print(A)
print(B)
[[38, 37], [13, 76], [19, 28], [16, 55]]
[[38, 13, 19, 16], [37, 76, 28, 55]]
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\).
Nel corso della lezione abbiamo visto altri esempi collezionati nel
file esempi_matrici.py che contiene
- creazione di matrici
- riempimento di una matrice con valori casuali in \([0,1)\)
- stampa di matrice
- creazione della matrice identità
- somma dei valori in una matrice
- calcolo della matrice trasposta
- posizione di una riga che ha somma massima
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: i paragrafi 11.1-11.3 del libro di testo.