Numpy 如何修改此代码以迭代矩阵n次?

Numpy 如何修改此代码以迭代矩阵n次?,numpy,math,matrix,Numpy,Math,Matrix,我需要迭代n次矩阵,我有以下代码: import numpy as np mat1 = ([1, 6, 5],[3 ,4, 8],[2, 12, 3]) mat2 = ([3, 4, 6],[5, 6, 7],[6,56, 7]) res = np.dot(mat1,mat2) print(res) 我想知道如何修改这段代码来迭代两个矩阵n次 提前感谢 您要做的是在循环中乘以矩阵: stateMatrix = ([...], ...) transitiona

我需要迭代n次矩阵,我有以下代码:

  import numpy as np 

  mat1 = ([1, 6, 5],[3 ,4, 8],[2, 12, 3]) 
  mat2 = ([3, 4, 6],[5, 6, 7],[6,56, 7])   
  res = np.dot(mat1,mat2) 
  print(res) 
我想知道如何修改这段代码来迭代两个矩阵n次


提前感谢

您要做的是在循环中乘以矩阵:

stateMatrix = ([...], ...)
transitionalMatrix = ([...], ...)
maxIterations = n

res = [stateMatrix]
for iteration in range(1, maxIterations):
  prev = res[iteration - 1]
  res.append(prev.matmul(transitionalMatrix))
# res[i] contains the state matrix at step i.

res[-1]
将包含最终状态矩阵,通过检查
res

中的其他元素,您可以看到实现该目标所需的每一步,方法是“迭代”,您的意思是“将结果乘以其中一个矩阵n次”?例如
C=A*B*B*B*B*B
?我正在使用马尔可夫链,因此我想将我的过渡矩阵乘以当前状态矩阵,并在每次迭代(乘法)中将当前状态的新值保存为要乘以过渡矩阵的值。执行代码时,会出现消息“list object has no attribute matlub”。我正在使用NumPy版本1.17.5。@B.Casals看起来你在什么地方打错了。我只是按照提供的方式复制了代码。将numpy导入为np transitionalMatrix=([0.78,0.05,0.15,0.02],[0.07,0.82,0.01,0.1],[0.10,0.04,0.84,0.01],[0,0.11,0,0,0.89])状态矩阵=([0.21,0.20,0.19,0.10])迭代次数=20 res对于范围内的迭代(1,maxIterations):prev=res迭代次数-1]res追加(prev.matmul(传递矩阵)看来“matmul”函数不存在,我该怎么解呢?