如何解决IndexError:标量变量的索引无效,我尝试了与其他简单函数相同的公式,但无法正常工作
当我运行此python 3部分代码时:
def tambah_edges(self,edges) :
for z in (0,1) :
for j in self.all_edges :
if j[0][0] == j[1][0] and j[0][0]<j[1][1] :
sisi = np.arange(j[0][1],j[1][1]+1)
for k in sisi :
v = edges[z]==[j[0][0],k]
if v.all() :
#memisahkan edges yang berpotongan dengan edges baru
temp_1 = [j[0],edges[z]]
temp_2 = [edges[z],j[1]]
#menghapus edges dan nodes lama yang sudah terpotong
self.all_edges = np.delete(self.all_edges,np.where(self.all_edges == j))
#memasukkan edges baru
self.all_edges = np.concatenate(temp_1,axis=0)
self.all_edges = np.concatenate(temp_2,axis=0)
#memasukkan nodes baru
if not edges[z] in self.all_nodes :
self.all_nodes = np.append(self.all_nodes,edges[z],axis=0)
self.intersection = np.append(self.intersection,axis=0)
突然我收到错误消息:
Traceback (most recent call last):
File "C:\Users\Isama\Desktop\eksperimen\cpp.py",line 499,in <module>
main()
File "C:\Users\Isama\Desktop\eksperimen\cpp.py",line 482,in main
map_exploration()
File "C:\Users\Isama\Desktop\eksperimen\cpp.py",line 468,in map_exploration
robot.tambah_edges(ez)
File "C:\Users\Isama\Desktop\eksperimen\cpp.py",line 169,in tambah_edges
if j[0][0] == j[1][0] and j[0][0]<j[1][1] :
IndexError: invalid index to scalar variable.
我不明白为什么会出现这样的问题,我已经尝试了另一种更简单的代码,并且可以正常工作
self.all_edges是一个3d数组,其中包含以下内容:
[[[ 5 1]
[ 5 6]]
[[ 5 6]
[12 6]]
[[12 6]
[12 1]]
[[12 1]
[14 1]]
[[14 1]
[14 14]]
[[14 14]
[ 1 14]]
[[ 1 14]
[ 1 1]]
[[ 1 1]
[ 5 1]]]
另一次,我在此代码中使用了相同的格式,但任务却更为简单:
def kuda(self) :
for j in self.all_edges :
if j[0][0] == j[1][0] and j[0][1] < j[1][1]:
print(j)
并打印此内容:
[[5 1]
[5 6]]
[[14 1]
[14 14]]
从第一个示例的错误消息中,我可以肯定'j'数组索引存在的问题,但是我不明白为什么它正在处理一组问题而不是另一组问题
我是python的新手,非常感谢大家的帮助
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。