Я хочу переопределить элементы массива в моей функции roll
roll_current = 0
def roll(t):
global roll_current
# Generate array of the same numbers
roll_current_ = np.full((len(t)), roll_current)
delta_roll_ = 0.1 - np.exp(-t)
diff_ = roll_current_ - delta_roll_
# Update roll_current_ array
for i, x in enumerate(roll_current_):
if diff_[i]>0:
roll_current_[i] = x - abs(diff_[i]) # x is equal to roll_current_[i]
elif diff_[i]<0:
roll_current_[i] = x + abs(diff_[i])
# Save value for the last time step
roll_current = roll_current_[-1] # Scalar
return roll_current_
Но если я использую присваивание -=
или +=
или код выше, массив roll_current_
не изменяется иследующие строки
t = np.linspace(0,4,10)
roll(t)
дают array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Что не так?