[问题] 关于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