私は 1 次元のランダム ウォークを作成しています。時間の経過とともに、これまでに到達した原点からの最大距離を for ループで保存したいと考えています。5 つのランダム ウォークが生成されます。これは私のコードです:
for j in range(5):
r = rand(10000)
t = range(10000)
x = zeros(10000)
y = zeros((10000, 5))
for i in range(10000):
walk = r[i]
if walk < 0.5:
x[i] = x[i-1] - 1
y[:,j]= maximum.accumulate(abs(x))
else:
x[i] = x[i-1] + 1
y[:,j]= maximum.accumulate(abs(x))
plot(t,x, label="Walk %d" %(j+1))
title("1-D Random Walk (Position versus Time)")
xlabel("Time")
ylabel("Position")
legend(loc="best")
grid()
問題は、for ループが設定された範囲 (5) を反復した後、出力の 2 次元配列に最後の反復のみが含まれることです。どういうわけか、前のものを上書きするので、最後の行だけが埋められた 10000x5 の配列しか得られません。
どうすればこれを機能させることができますか?