基本的に、私のコードは配列を改良します。データの次のビットが遠すぎる場合は、上下のインデックスを検索して、そのデータがそのインデックスに適しているかどうかを確認します。つまり、
def distance(x, y):
if x > y:
result = x - y
else:
result = y - x
return result
for y in range(0,10):
for x in range(0,10):
newarray[y][0] = myarray[y][0]
if distance(myarray[y][x],myarray[y][x+1]) > myerror:
if distance(myarray[y-1][x+1],newarrayarray[y][x]) <= myerror:
newarray[y][x+1] = myarray[y-1][x+1]
elif distance(myarray[y-2][x+1],newarrayarray[y][x]) <= myerror:
newarray[y][x+1] = myarray[y-2][x+1]
elif distance(myarray[y+1][x+1],newarrayarray[y][x]) <= myerror:
newarray[y][x+1] = myarray[y+1][x+1]
elif distance(myarray[y+2][x+1],newarrayarray[y][x]) <= myerror:
newarray[y][x+1] = myarray[y+2][x+1]
else:
newarray[y][x+1] = myarray[y][x+1]
else:
newarray[y][x+1] = myarray[y][x+1]
したがって、このコードは y の特定の値、より具体的には配列の中間値に対して非常にうまく機能します。明らかに y=10 には y+1 値がないため、私が抱えている問題は外側の値です。
私がしたいのは、インデックスの範囲外になった場合、エラーとして見るのではなく、設定した条件を満たさないものとして扱いたいということです。したがって、y = 10 の場合、y = 11 が存在しないためにヒストリックフィットをスローするのではなく、y = 11 を探すとき、これは真実ではないと言うだけでいいので、次の if に進みます。
これが理にかなっていることを願っています。そうでない場合はコメントしてください。解決しようとします。