Я имитирую двумерное случайное блуждание с направлением 0 < θ < 2π и T = 1000 шагов. У меня уже есть:Python: Повторение двухмерного моделирования случайного блуждания
a=np.zeros((1000,2), dtype=np.float)
def randwalk(x,y):
theta=2*math.pi*rd.rand() # Theta is a random angle between 0 and 2pi
x+=math.cos(theta); # Since spatial unit = 1
y+=math.sin(theta); # Since spatial unit = 1
return (x,y)
x, y = 0., 0.
for i in range(1000):
x, y = randwalk(x,y)
a[i,:] = x, y
Это генерирует одну прогулку и сохраняет все промежуточные координаты в массиве numpy a. Как я могу отредактировать свой код, чтобы повторить прогулку 12 раз (используя каждое новое случайное семя каждый раз), а затем сохранить каждый прогон в отдельном текстовом файле? Нужен ли мне цикл while в моей функции randwalk?
Guess:
rwalkrepeat = []
for _ in range(12):
a=np.zeros((1000,2), dtype=np.float)
x, y = 0., 0.
for i in range(1000):
x, y = randwalk(x,y)
a[i,:] = x, y
rwalkrepeat.append(a)
print rwalkrepeat
Чтобы повторить вышеуказанные 12 раз, для цикла вокруг того, что у вас уже есть, будет хорошо работать. – mdurant
Вы должны попытаться решить больше этого самостоятельно, прежде чем отправлять вопросы. Вы говорите: «Мне нужен цикл while», и лучшим ответом на это является попытка заставить его работать с циклом while. Кроме того, попробуйте заставить его работать с циклом 'for', так как вы тоже об этом знаете. Сохранить как текст ?, google «numpy save as text» и посмотреть, что вы получаете. Первый хит - это «numpy.savetxt», а второй - «numpy input and output». – tom10
@ tom10 Я добавил гадание к сообщению. Я на правильных линиях? –