我想计算车辆的速度,绘制一个图表,其中 x 轴为时间(以秒为单位),y 轴为速度(以公里/小时为单位)。为此,我需要获取之前计算的 y 值。
示例:y[x] = y[x-1] * a
a = 0,11768
x = np.arange(0, 100, 1) # 0 to 100 seconds
y = a * y[x-1] ??
plt.plot(x, y)
plt.show()
numpy 可以做到这一点吗?或者我应该做一个循环来迭代所有索引?
最佳答案
v=v0+at
假设您的加速度恒定且 v0=0
无需简单地执行您想要的操作:
import numpy as np
import matplotlib.pyplot as plt
a = 0.11768 #is it in m/s^2? I've used m/s^2...
v=[] #velocity at a given time ‹
x = np.arange(0, 100, 1) # 0 to 100 seconds
for i in x: # ‹
v.append(i*a) #read it as a*t, in fact is t...use i*a*3.6 if you want km/h ‹
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,v,)
plt.plot(x, v)
plt.ylabel(r'Velocity $(m/sec )$') #note if you want km/h use v.append(i*a*3.6) above
plt.xlabel(r'Time $(sec)$')
plt.show()
这是结果:
编辑:
正如 Joe 在他的评论中所建议的,您应该使用 v=a*x
删除我的代码中标有 <
的行,以获得更有效的方法!
关于python - 使用 numpy 使用前一个 y 元素计算下一个 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586871/