最近在把一个项目的matlab代码改为python的过程中,涉及到多个矩阵的乘法。众所周知,对于两个矩阵的乘法,一般用 np.matmul(mat1, mat2) 实现。
我潜意识以为 np.matmul(mat1, mat2, mat3) 可以计算三个矩阵的乘法。但是,经过与matlab的 * 对比,发现总是得到错误的答案。
经过查阅,对于多个矩阵的乘法,可以通过以下两个方式实现
1. mat1@mat2@mat3,@是python 自带的运算符
2.np.matmul(np.matmul(mat1, mat2), mat3),即matmul的嵌套
np.matmul(mat1, mat2,mat3)的功能是,将其那两个矩阵相乘,并赋值给第三个矩阵。(没想到吧)
而matmul的原型是:
numpy.matmul(a,b,out=None)
这里需要 避坑 ~