Python ValueError:matmul:输入操作数1的核心维度0不匹配?

Python ValueError:matmul:输入操作数1的核心维度0不匹配?,python,matrix-multiplication,Python,Matrix Multiplication,我一直在尝试使用“枢轴算法”实现随机移动。我得到以下错误信息,即: 我知道我正在尝试将一个3行1列的矩阵与一个3列1行的矩阵相乘。但我无法解决这个问题。有人能帮我吗 代码如下: def枢轴_移动(自身、角度): phi=np.数组(2*np.pi*np.rand.rand(1))#θ,单位为度 θ=np.数组(np.arccos(1-2*np.random.rand(1))#φ,单位为度 u_x=np.sin(θ)*np.cos(φ) u_y=np.sin(θ)*np.sin(φ) u_z=

我一直在尝试使用“枢轴算法”实现随机移动。我得到以下错误信息,即:

我知道我正在尝试将一个3行1列的矩阵与一个3列1行的矩阵相乘。但我无法解决这个问题。有人能帮我吗

代码如下:


def枢轴_移动(自身、角度):
phi=np.数组(2*np.pi*np.rand.rand(1))#θ,单位为度
θ=np.数组(np.arccos(1-2*np.random.rand(1))#φ,单位为度
u_x=np.sin(θ)*np.cos(φ)
u_y=np.sin(θ)*np.sin(φ)
u_z=np.cos(θ)
“”“正在初始化旋转矩阵”“”
R_xx=np.cos(角度)+np.power(u_x,2)*(1-np.cos(角度))
R_xy=u_x*u_y*(1-np.cos(角度))-u_z*np.sin(角度)
R_xz=u_x*u_z*(1-np.cos(角度))+u_y*np.sin(角度)
R_yx=u_x*u_y*(1-np.cos(角度)+u_z*np.sin(角度))
R_yy=np.cos(角度)+np.power(u_y,2)*(1-np.cos(角度))
R_yz=u_y*u_z*(1-np.cos(角度))-u_x*np.sin(角度)
R_zx=u_x*u_z*(1-np.cos(角度))-u_y*np.sin(角度)
R_zy=u_y*u_z*(1-np.cos(角度))+u_x*np.sin(角度)
R_zz=np.cos(角度)+np.power(u_z,2)*(1-np.cos(角度))
Rot=np.数组([[R_-xx,R_-xy,R_-xz],[R_-yx,R_-yy,R_-yz],[R_-zx,R_-zy,R_-zz])
打印(“腐烂”,腐烂)
打印(“Rot有形状:{}”。格式(Rot.shape))
pivot=np.random.randint(N-1)+1
pivot\u pos=np.array(self.chain[pivot].pos)
打印(“轴位置:{}”。格式(轴位置形状))
对于范围内的i(枢轴+1,N):
单体_pos=np.array([self.chain[i].pos[0],self.chain[i].pos[1],self.chain[i].pos[2]]
打印(“monmer”,单体位置)
打印(“单体形状为:{}”。格式(单体位置形状))
self.chain[i].pos=np.matmul(Rot,(monomer_pos-pivot_pos))+pivot_pos
打印(“链”,self.chain[i].pos)
回归自我
结果是这样的