2012-10-30 2 views
1

다음은 내 코드의 섹션 (큰 섹션)입니다. http://pastebin.com/KCZNkYNBlist.insert를 사용하려고 할 때의 파이썬 인덱스 오류

나는 계산에 의해 거리가 1cm까지 최소화 될 때까지이 시퀀스를 반복합니다. 나는 그때까지 나의 다음 신기원으로 옮기고 싶지 않다. 그래서 나는 나의 목록에 .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 

이 오류는 페이스트 빈 파일의 줄 번호 54에 해당합니다.

내가 이해할 수없는 것은 삽입 할 때 인덱스가 범위를 벗어나는 방법입니다. 전체 페인 선 아웃풋 : http://pastebin.com/qKhRjn2Q 마지막 "k"인디즈가 7이고, 그 다음 에포크 1에 도달하고 인디스 8로 증가하지만 범위를 벗어난 인덱스로 잘라 냈습니다. 왜 그렇게되는지 혼란 스럽습니다. .insert 부분을 주석 처리하고 .append를 주석 처리하지 않은 것처럼 삽입하려고하는 모든 데이터가 있음을 확신합니다. 제대로 작동합니다. 불행하게도, 나는 방금 추가 한 것이 내 자 코비안을 올바르게 계산하기 위해 필요한 데이터를 "숨기고있다"는 것을 깨달았다.

충분한 정보를 제공했으면합니다. 제공 할 수있는 모든 도움에 감사드립니다!

+1

k가 범위 또는 범위라고 가정합니다. 코드를 여러 줄로 나눠보십시오. 이것은 디버거를 사용하는 방법에 대한 더 많은 질문입니다. – RParadox

답변

1

오류 행에는 6 회의 색인 작업이 있습니다 (예 : satellite_output.x[k]). 그것들 중 하나가 아마도 삽입 작업이 아니라 결함을 일으키는 것입니다.

오류 메시지가 덜 유용합니다.

+0

실제로 사용중인 모든 배열을 확인해야합니다. 예외 범위를 벗어났습니다. – VicoMan

+0

온라인 49는 동일한 색인을 사용하여 동일한 계산을 포함하는 .append입니다. 54 번째 라인을 주석 처리하고 49 번째 라인의 주석 처리를 제거해도 색인 오류가 발생하지 않습니다. 필자는 원한다면 데이터가 내 satellite_output.x에 실제로 존재한다는 디버깅 출력을 보여줄 수 있습니다. – Jonathan

+0

알아 냈습니다. : D 내가 원했던 것은 나의 거리가 내가 찾고있는 정확도로 최소화되었을 때, 다음 에포크를위한 새로운 대략적인 데카르트 좌표를 사용하기 위해 내 x, y, z 베치 코드를 설정할 필요가 있음을 확인하는 것이었다. 모든 답변을 주셔서 감사 드리며, 너무 사소한 것에 약간의 시간을 낭비하게되어 죄송합니다. – Jonathan

0

알아 냈습니다. : D

내가해야 할 일은 거리가 정확성을 위해 최소화되었을 때, 다음에 대해 새로운 대략적인 데카르트 좌표를 사용하기 위해 x, y, z 축 좌표를 설정할 필요가 있음을 확인하는 것이 었습니다. 시대.

모든 응답을 주셔서 감사 드리며, 너무 사소한 것을 위해 약간의 시간을 낭비하셨습니다.

관련 문제