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

Python绘制卫星矢量图plt.arrow报'int'对象不可下标错误求解决

报错根因与排查方案

TypeError: 'int' object is not subscriptable 触发的核心原因是你对整数类型的变量执行了下标取值操作(比如var[0]、var[1]这类写法),结合你在plt.arrow()调用处报错的场景,对照以下高频问题点逐一核对即可定位:

  • 检查你存储卫星位置、加速度、引力矢量的变量类型:如果原本应该是存x、y两个分量的列表/ numpy数组,被你意外赋值为单个整数(比如把pos = [100, 200]写成pos = 100),后续取下标取分量时就会触发报错
  • 核对plt.arrow()的入参写法:plt.arrow()前四个必填参数为x, y, dx, dy,如果你写了类似plt.arrow(pos[0], pos[1], acc[0], acc[1])的代码,只要pos、acc任一变量是整数类型就会报错
  • 对比参考代码的变量定义:确认你没有漏写矢量的数组封装,比如参考代码用pos = np.array([x, y])定义位置,你漏写np.array()直接写成pos = x的话,后续取下标就会出问题

快速验证方法

在报错的plt.arrow()代码前加一行调试打印,直接定位异常变量:

# 打印所有你用到下标取值的变量的类型和值
print(type(pos), pos, type(acc), acc, type(grav), grav)

运行后找到类型为<class 'int'>的变量,把它修正为存储多分量的列表/ numpy数组即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:15:02