Mnożenie macierzy za pomocą list składanych

Mnożenie macierzy za pomocą list składanych
C4
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:10
0

Witam mam taki mały problem z mnożenie macierzy.
Czy da się zapisać za pomocą list comprehension
mnożenie macierzy bez używania funkcji zip() , oraz sum().
W funkcji matlc_4 niestety nie działa to poprawnie.

Kopiuj
def matmul_for(a,b,rows_cols):
    res1 = [[0]*rows_cols for i in range(rows_cols)]
    for i in range(rows_cols):
        for j in range(rows_cols):
            for k in range(rows_cols):
                res1[i][j]= res1[i][j]+a[i][k]*b[k][j]
    return res1
 
def matlc(a,b,rows_cols):
    return  [[sum(a[i][k]*b[k][j] 
            for k in range(rows_cols) ) 
            for j in range(rows_cols)] 
            for i in range(rows_cols)]
 
def matlc_4(a,b,rows_cols):
    res3 = [[0]*rows_cols for i in range(rows_cols)]
    return    [[ res3[i][j] +a[i][k]*b[k][j]
            for i in range(rows_cols)
                for j in range(rows_cols)]
                    for k in range(rows_cols)]
 
 
 
 
rows_cols =3
a=[[1,2,3],
    [4,2,4],
    [6,4,2]]
 
b=[[3,0,9],
    [4,7,6],
    [2,1,5]]
 
print("MACIERZE")
print(a)
print(b)
print('')
 
print('matmul_for(a,b,rows_cols):')
m1=matmul_for(a,b,rows_cols)
print(m1)
print('')
 
print('matlc(a,b,rows_cols)')
m2=matlc(a,b,rows_cols)
print(m2)
print('')
 
print('matlc_4(a,b,rows_cols):')
m3=matlc_4(a,b,rows_cols)
print(m3)
print('')```
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:minuta
  • Postów:4930
1

I tak Masz trzy pętle w tej funkcji, to jaki zysk z list comprehension?


edytowany 1x, ostatnio: lion137
C4
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:10
0

Po prostu przy nauce chciałem się dowiedzieć jak to przekonwerterować
z jednej formy w drugą.

BA
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:2
0

A robisz jakiś konkretny projekt? Moze uda się to inaczej zastąpić.
pozdrawiam Kamil

edytowany 1x, ostatnio: Baka

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.