1
del_between=raw_input('Do you want to delete all the points between two points? input "N" or "Y"')
if del_between=="N" or del_between=="n":
    print "You have choosen NOT to delete all the points between two points."
if del_between=="Y" or del_between=="y" :
    print "Please click the first bad point and the last bad point to choose the range of the bad points"
    between_badpoints=ginput(n=2)
    print between_badpoints
    index_between_badpoints=[]
    for i in range(len(between_badpoints)):
         index_between_badpoints.append(int(np.interp(between_badpoints[i][0],jd2,range(len(jd2)))))
    print index_between_badpoints
    index_betweens=[]
    for i in range(sorted(index_between_badpoints)[0],sorted(index_between_badpoints)[1]+1):
         index_betweens.append(i)
    print index_betweens
    for i in index_betweens[::-1]:
         del lat[i],lon[i],time[i],yeardays[i],depth[i],temp[i]

このプログラムは、収集された2つのポイント間のすべてのポイントを削除しようとします。問題は、このプログラムを実行しようとすると、セグメンテーション違反が表示されることです。

クリックしてポイントを選択すると、例外「セグメンテーション違反」が発生するため、問題はこの行「between_badpoints = ginput(n = 2)」に集中していると思いますが、なぜ間違っているのかわかりません。

(この同じプログラムでこの'ginput'コマンドを使用しましたが、うまく機能しました。その後、ginput変数を削除して、このように再度使用しましたが、機能しませんでした。)

4

1 に答える 1

1

このプログラムで ginput を使用するのはこれで 2 回目ですが、新しい Figure を作成していません。 ginput は 1 回しか使用できません。

于 2012-11-27T17:23:36.667 に答える