Macierze gęste na bazie list Pythona.
Elementy macierzy są zapisywane wierszami na liście.
Należy zaimplementować następujące działania na macierzach:
porównywanie, dodawanie, odejmowanie, mnożenie, transpozycja, zmiana wymiarów
(reshape, np. 3x4 na 1x12, 2x6).
Dla macierzy kwadratowych dodatkowo należy zaimplementować obliczanie
śladu (suma elementów diagonalnych) i wyznacznika.
class Matrix(object):
def __init__(self, rows=1, cols=1):
self.rows = rows
self.cols = cols
self.data = [0] * rows * cols
def __str__(self):
return str(self.data)
def __getitem__(self, pair): # odczyt m[i, j]
i, j = pair
return self.data[i * self.cols + j]
def __setitem__(self, pair, value): # m[i, j] = value
i, j = pair
self.data[i * self.cols + j] = value