python - 使用 numpy 使用前一个 y 元素计算下一个 y

标签 python numpy

我想计算车辆的速度,绘制一个图表,其中 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()

这是结果: enter image description here 编辑: 正如 Joe 在他的评论中所建议的,您应该使用 v=a*x 删除我的代码中标有 < 的行,以获得更有效的方法!

关于python - 使用 numpy 使用前一个 y 元素计算下一个 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586871/

相关文章:

python - 使用 isinstance() 可以覆盖类型

python - NumPy - 沿第三维点积而不复制

python - scipy -- 如何积分线性插值函数?

python - 我如何轻松处理带括号的数字系列格式?

python - 使用 Numpy 进行低效正则逻辑回归

python - 使用numpy在python中有条件地返回列

python - 查找给定区间的最近值

python - 4 次矩阵乘法的 np.einsum 性能

python - 如何修复 ' list indices must be integers or slices, not list'错误?

python - 使用逻辑回归进行预测 (Python Scikit Learn)