Я хотел бы сделать функцию матрицы перестановок, используя список списков в качестве матрицы перестановок. Вектор, чьи элементы будут заменены, может содержать данные None. Как я могу это сделать? Это код, который я написал.
def matrixmulitplikation(matrix, vektor):
# Matrixmultiplikation N * q
# example matrixmulitplikation([[1,0,0],[0,0,1],[0,1,0]],[[1,None,1]])
# | 1 0 0 | | 1 | | 1 |
# | 0 0 1 | x | None | = | 1 |
# | 0 1 0 | | 1 | | None |
#
transvek=list(map(list, zip(*vektor)))
Nq_new = [[0] for i in range(len(matrix))]
for i in range(0, len(matrix)):
puffer = 0
for j in range(0, len(transvek)):
if transvek[j][0]!=None:
puffer = puffer + (matrix[i][j] * transvek[j][0])
elif transvek[j][0]==None:
if matrix[i][j]==0:
pass
elif matrix[i][j]==1:
puffer = None
Nq_new[i][0] = puffer
transNq_new=list(map(list, zip(*Nq_new)))
return transNq_new
Так, например, если я бегу
матричное умножение ([[1,0,0], [0,0,1], [0,1,0]], [[1, None, 1]])
Тогда результат должен быть [[1,1, None]], потому что второй и третий элементы в векторе заменяются.
Спасибо всем.