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

抛体运动绘图代码中np.append无法将值存入数组问题求助

问题原因

np.append 不会修改输入的原numpy数组,只会返回一个新增元素后的新数组。你当前的代码没有接收这个返回值,所以原来的x_val和y_val永远停留在初始化的状态。

修复方案

方案1:最小改动适配现有逻辑

把循环里的两行append语句改成接收返回值的形式即可:

x_val = np.append(x_val, X)
y_val = np.append(y_val, Y)

不过这种写法效率很低:numpy数组是定长结构,每次append都会重新申请整块内存、拷贝原有数据,循环次数多的时候性能损耗非常明显。

方案2:改用Python列表暂存数据(更推荐)

Python列表是变长结构,append操作是O(1)均摊复杂度,最后统一转numpy数组即可,修改步骤如下:

  1. 把数组初始化部分改写成空列表:
# 替换原有的x_val、y_val初始化代码
x_val = []
y_val = []
  1. 循环里直接用列表的append方法添加元素:
x_val.append(X)
y_val.append(Y)
  1. 所有计算完成后再转成numpy数组使用:
x_val = np.array(x_val)
y_val = np.array(y_val)

额外优化建议

你当前的代码把4组不同初始参数的抛射坐标都存在同一个一维数组里,如果后续需要分别绘制4条轨迹,建议给每组参数单独开辟存储空间,避免数据混杂。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:12:04