3
我有一個叫做get_gradient的簡單函數,它接受一個[[x,y,Vx,Vy]]的numpy數組並返回[[Vx,Vy,Ax,Ay]]的數組。我想將我的k [0] [0:2]更新爲等於狀態[0] [2:4],但是當我將它們打印出來時,k永遠不會更改值。我創建了一個初始數組的副本,希望它能整理出來,但它仍然不起作用!任何幫助,將不勝感激爲什麼python 2.6不能更新我的numpy數組?
Y = numpy.array([[0, 0, 0, 0]]) # [x,y,Vx,Vy]
k = numpy.array([[0, 0, 0, 0]]) # [x,y,Vx,Vy]
def get_gradient(Y):
state = Y.copy()
spring_force = spring.force(state[0], feet_pos[0])
brownian_force = mass.brownian(dt)
drag_force = mass.drag(state[0][2:4])
total_force = spring_force + brownian_force + drag_force #2d array [Fx,Fy]
k[0][0:2] = state[0][2:4] ##### DOESN'T WORK!!!
k[0][2:4] = total_force/mass.mass ##### but this works :s
print k[0][0:2]
print state[0][2:4]
return k
'k'從哪裏來?你會得到什麼錯誤? – Keith
k是一個numpy數組[[0,0,0,0]],我沒有收到錯誤,代碼運行良好。然而k [0] [0:2]永遠不會從0,0變化。當我打印k [0] [0:2]和狀態[0] [2:4]肯定它們應該是相同的? – user1696811
你能提供一個可運行的例子嗎?我無法重現該問題。 (對我來說,'k [0] [0:2]'和'state [0] [2:4]'是一樣的。) – unutbu