You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sympy dot方法维度识别异常:转置矩阵仍报维度不匹配错误

Sympy矩阵乘法报错:.dot()方法误用问题

问题根源

你混淆了Sympy中.dot()的功能:它不是矩阵乘法运算符,而是用来计算向量点积的——要求两个操作数必须是同维度的向量(比如都是(3,1)列向量,或都是(1,3)行向量),而非矩阵乘法的维度匹配规则。

你的代码里c是(3,3)矩阵,不管是xm(3,1)还是xmt(1,3),都和c的维度不满足点积的同型要求,所以都会触发维度不匹配错误。

正确的矩阵乘法方式

在Sympy中,矩阵乘法直接用*运算符,或者调用.multiply()方法:

修正后的代码示例

from sympy import *
x1, x2, x3 = symbols('x1 x2 x3')

x = Matrix([x1, x2, x3])
m = Matrix([1, 2, 3])
xm = (x-m)
xmt = xm.T
c = Matrix([[1, 2, 3], [2, 1, 4], [3, 4, 5]])

# 正确的矩阵乘法:(1,3) * (3,3) = (1,3)
result = xmt * c
print(result)

运行结果

Matrix([[x1 + 2*x2 + 3*x3 - 14, 2*x1 + x2 + 4*x3 - 16, 3*x1 + 4*x2 + 5*x3 - 22]])

补充:什么时候用.dot()

如果要计算两个向量的点积,比如两个同型向量:

v1 = Matrix([1,2,3])
v2 = Matrix([4,5,6])
print(v1.dot(v2))  # 输出:32(计算逻辑:1*4 + 2*5 + 3*6)

内容的提问来源于stack exchange,提问作者liakoyras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:25:14