下面是Python中的一个示例代码:
import numpy as np
X = np.matrix([[0, 1], [1, 0]])
e1 = np.array([1, 1])
state = X @ e1
print(X @ state)
字符串
matmul操作数在执行矩阵向量乘法时返回的向量的形状为(2,1)而不是(2,),因此您无法将结果向量与另一个矩阵相乘而不会出现不匹配。
为了解决这个错误,我可以在乘法后使用整形函数来获得正确的结果。但是,我想知道是否有一种方法可以 * 直接 * 具有正确的形状,因为我必须在for循环中进行大量此类操作。
1条答案
按热度按时间slmsl1lt1#
如果你使用
np.array
而不是np.matrix
,它将解决你的问题:字符串
np.matrix
是deprecated:不再推荐使用此类,即使是线性代数。而应使用常规数组。将来可能会删除该类。
希望这会有帮助!