2016-11-09 2 views
0

Ich habe eine Klasse Matrix (Objekt) mit get_row und get_column Definitionen. Wie kann ich eine Matrix-Multiplikation mit ihnen machen?Matrix-Multiplikation mit get _row get_column - python

def get_row(self,r): 
    get_row = self._m[r] 
    return get_row 


def get_column(self,c): 
    get_column=[] 
    for row in self._m: 
     get_column.append(row[c]) 
    return get_column 

m2 = Matrix (2, [[1,2], [3,4]]) m3 = Matrix (2, [[5,6], [7,8]])

gc = m2.get_column (1) ----> [2,4] gr = m2.get_row (1) ----> [3,4]

Der folgende Code funktioniert, aber ich habe tun es mit get_row und GET_COLUMN

nollmatris=[[0 for r in range(self._size)] for c in range(self._size)] 
 
    for i in range(len(self._m)):   
 
    for j in range(len(other._m[0])): 
 
     for k in range(len(other._m)): 
 
      nollmatris[i][j] += self._m[i][k] * other._m[k][j] 
 
for svar in nollmatris: 
 
    print(svar)

Antwort

0

Ich nehme an, das ist Hausaufgaben, denn wenn es keine Hausaufgaben ist, lautet die Antwort "werde numpy." Wenn das nicht möglich ist, verwenden Sie am besten zip() als Iterator in einer for-Schleife.

0

einfach die formale Definition der Produkt Matrizen gelten:

m1, m2 definition 
product = [[0 for j in range(len(m2.get_row(0)))] for i in range(len(m1.get_column(0)))] 
for i in range(len(product)) : 
    for j in range(len(product[0])) : 
     for k in range(len(m1.get_row(0))) : 
      product[i][j] += m1[i][k]*m2[k][j] 

Sehr einfache Ansatz, und nicht optimiert, aber es funktioniert.