Объект 'list' не имеет атрибута 'matmul' - PullRequest
0 голосов
/ 11 марта 2020

У меня есть код ниже для вычисления итераций цепи Маркова. Наличие двух матриц: матрицы текущего состояния и переходной матрицы; при указании количества итераций (умножений между двумя матрицами) код должен сохранять результат матрицы состояний после одной итерации для следующей итерации и т. д. При компиляции кода возникает ошибка:

AttributeError: у объекта 'list' нет атрибута 'matmul'.

Я работаю с NumPy версией 1,17. Как я могу решить это?

import numpy as np

transitionalMatrix = ([0.42, 0.16, 0.36, 0.02 ],[0.05, 0.43, 0.04, 0.11 ], [0.24, 0.16, 0.51 , 0.04 ], [0.01, 0.31, 0.01, 0.59 ]) 
stateMatrix = ([0.20461531, 0.26104588, 0.19799357, 0.14561973]) 
maxIterations = 6

res = [stateMatrix]
for iteration in range(1, maxIterations):
 prev = res[iteration - 1]
 res.append(prev.matmul(transitionalMatrix))

1 Ответ

0 голосов
/ 11 марта 2020

Как говорит ошибка, вы пытаетесь применить matmul к списку, который не имеет такого атрибута. Если предположить, что вы хотите использовать np.matmul(), то, что вы должны сделать:

np.matmul(prev, transitionalMatrix))

Однако, как указал Чернослив, отсутствие минимального воспроизводимого примера делает невозможным вам помочь дополнительно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...