【发布时间】:2021-12-26 21:06:04
【问题描述】:
如何将 z 存储为具有多个值的变量,而不是在每次循环后重写 z 的代码?
import numpy as np
def equation1(m,k,x,deltat):
Fpeak = 1000 + 9 * x**2 - 183 * x
td = 20 - 0.12 * x**2 + 4.2 * x
w = np.sqrt(k/m)
T = 2 * np.pi / w
time = np.arange(0,2*T,deltat)
z=[]
for t in time:
if (t <= td):
z = (Fpeak/k) * (1 - np.cos(w*t)) + (Fpeak/k*td) * ((np.sin(w*t)/w) - t)
else:
z = (Fpeak/(k*w*td)) * (np.sin(w*t) - np.sin(w*(t-td))) - ((Fpeak/k) * np.cos(w*t))
return(z)
print(equation1(200,1000,0,0.001))
【问题讨论】:
-
这完全取决于您希望 z 成为什么样的变量。
-
一份清单?然后初始化
z = [],在你的循环中,z.append(...) -
一个数组?然后对其进行初始化,并按索引分配。
-
...但事实上,这个问题太宽泛了,无法回答,因为
z有几种不同的东西可能包含所有想要的结果,你需要选择一个自己。
标签: python function numpy for-loop if-statement