pythonで配列を初期化する際に問題があります。私は解決策を探していましたが、何も見つけられませんでした。 (私は間違ったキーワードを検索した可能性があります)。 私はマシンビジョンアプリケーション用のPythonスクリプトを書いています。このアプリケーションは、順序付けられた順序で繰り返し実行されるいくつかの「ツール」で構成されています。私がPythonスクリプトとして書いているこれらのツールの1つ。このスクリプトでは、配列型変数を作成する必要があります。各繰り返しで最初の値が削除され、最後に新しい値が追加されます。イテレーション間の配列を覚えておく必要があるので、グローバルでなければならないのでしょうか? 問題は、スクリプトの先頭に変数を配列として定義する必要があることです。このため、私は次のものを使用します: xPosition_array = [] 後でスクリプトに値を追加します。しかし、次の反復 xPosition_array = [] は空の配列で配列を上書きします。 配列が一度だけ定義され/初期化されるようなコードを作成するにはどうすればよいですか(最初の反復)?pythonscript、各イテレーションの配列と値の初期化
ありがとうございます。
コード:
global xPosition_array
xPosition_array = []
filter_win_len = 40
def moving_average(a, n) :
ret = np.cumsum(a, dtype=float)
ret[n:] = ret[n:] - ret[:-n]
return ret[n - 1:]/n
xPosition = GetValue('LocatexPos.Line[1]_q_x')
if len(xPosition_array) < filter_win_len:
xPosition_array.append(xPosition)
elif len(xPosition_array) == filter_win_len:
xPosition_array.pop(0)
xPosition_array.append(xPosition)
xPosition_filtered = moving_average(xPosition_array, filter_win_len)
テイラーの返信をありがとう!あなたの提案したソリューションは、私が探していたものとまったく同じです。 – John
問題ありませんジョン、私は助けることができてうれしい! –