1

这是我的代码的一部分(很大一部分)。 http://pastebin.com/KCZNkYNB

根据设计,我正在发生的事情是遍历这个序列,直到我计算的距离最小化 1 厘米。在那之前我不想进入下一个时代,这就是为什么我认为我应该使用 .insert 作为我的列表。我需要覆盖它当前所在索引处的数据。

我得到的错误是:


Traceback (most recent call last):
  File "receiver2.py", line 342, in <module>
    main()
  File "receiver2.py", line 244, in main
    N.insert(k, ( dec.sqrt( (dec(satellite_output.x[k]) - dec(x_veh_coords[epoch]))**2 + (dec(satellite_output.y[k]) - d
ec(y_veh_coords[epoch]))**2 + (dec(satellite_output.z[k]) - dec(z_veh_coords[epoch]))**2 ) ) )
IndexError: list index out of range

此错误对应于 pastebin 文件中的第 54 行。

我不明白的是插入时索引如何超出范围。完整的 pastebin 输出: http://pastebin.com/qKhRjn2Q 您将在该输出的底部看到最后一个“k”索引为 7,然后它达到 epoch 1,并递增到索引 8,但随后被索引淘汰超出范围。我对为什么会发生这种情况感到非常困惑。我向您保证,所有试图插入的数据确实存在,就好像我要推荐 .insert 部分并取消注释 .append 一样,它工作正常。不幸的是,我刚刚意识到 append 正在“隐藏”我需要的数据,以便正确计算我的雅可比。

我希望我已经提供了足够的信息。谢谢你尽你所能的帮助!

4

2 回答 2

1

您在错误行中有六个索引操作(例如satellite_output.x[k]);其中之一可能是导致故障,而不是插入操作。

错误消息没有它可能有用。

于 2012-10-30T18:17:53.330 回答
0

我想通了。:D

我需要做的是确保当我的距离最小化到我正在寻找的精度时,我需要设置我的 x,y,z vech 坐标以在下一个时期使用新的近似笛卡尔坐标。

我很感激所有的回复,很抱歉浪费了你一点时间在如此琐碎的事情上。

于 2012-10-30T18:49:36.700 回答