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.
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('')```