[問題] 關於index error

作者: aphice ("習慣孤單")   2016-06-11 17:27:46
小弟在寫程式的時候遇到這個錯誤
dis[i,j]=((lo[i,1]-lo[j,1])**2+(lo[i,2]-lo[j,2])**2)**0.5
IndexError: index 2 is out of bounds for axis 1 with size 2
一直無法除錯
想請教一下版上高手如何修正,感謝
以下為部分程式碼
def random(st,en):
a=randint(st,en)
b=randint(st,en)
while a==b:
b=randint(st,en)
return (a,b)
def dis(lo,l):
dis=zeros([l,l])
for i in xrange(l):
for j in xrange(l):
dis[i,j]=((lo[i,1]-lo[j,1])**2+(lo[i,2]-lo[j,2])**2)**0.5
return dis
def price(r,dis,data,l):
p=0
for i in xrange(l):
for j in xrange(l):
p=p+dis[i,j]*data[r[i],r[j]]
return p
def change(kids,x,X,l):
for n in xrange(kids):
p1,p2=random(0,l-1)
x[p1],x[p2]=x[p2],x[p1]
X.append([price(x,dis,data,l),copy(x)])
return X
lo=loadtxt("location.txt")
l=len(lo)
data=loadtxt("data_final.txt")
dis=dis(lo,l)
n_kids=50
n_gen=100
X=[]
還請高手幫忙看一下
location.txt檔為
92 148
75 36
156 14
6 165
67 91
87 8
98 87
190 32
48 7
53 144
作者: yeh6   2016-06-11 19:00:00
lo的第二個index是不是應該是0和1?

Links booklink

Contact Us: admin [ a t ] ucptt.com