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