我通过多个点来计算机翼的浮力。为此,我有具体的表面和空气压力数据。我现在想通过这样的循环将计算值存储在变量中:
w = 0.7
# air pressure data
pt = np.array([0, -18.63, -80.41, -88.25, 90.21, -95.61])
pb = np.array([-112.28, 34.32, -101.98, -85.31, -3.33, 11.47, 14.71])
#top wing x-pos.
xt = np.array([11, 9.1, 6.85, 4.7, 1.7, 0.6, 1.9])
#bottom wing x-pos.
xb = np.array([2.85,0.8, 0.85, 2.5, 4.225, 6.7, 9.025, 11])
#top wing y-pos.
yt = np.array([1, 2.1, 3.05, 3.8, 3.7, 2.1, 1])
#bottom wing y-pos.
yb = np.array([4.05, 3, 1.55, 0.95, 1.125, 1.3, 1.225,1])
for i in range(0,5):
at[i] = sqrt( (xt[i] - xt[i+1]) ** 2 + (yt[i] - yt[i+1]) **2 ) * w
ab[i] = sqrt( (xb[i] - xb[i+1]) ** 2 + (yb[i] - yb[i+1]) **2 ) * w
在左边,它应该创建如下多个变量:
at0 = ...
:
:
at5 = ...
ab0 = ...
:
:
ab5 = ...
右边的地址是存储在np.array()
中的数字
但是这会产生这个错误:NameError: name 'at' is not defined
然后继续这样:
for x in range(0,5):
Ft = sum( at[x] * pt[x] )
Fb = sum( ab[x] * pb[x] )
直到现在我都试着用字典,循环一行。。。但它不起作用。你知道吗
顺便问一下:我用np.sum()
和np.sqrt()
而不是用sum()
和sqrt()
有关系吗?
非常感谢你!你知道吗
您需要先定义变量
at
,然后再尝试对其进行赋值。您得到错误是因为变量不存在。如果您只需要一个简单的列表,那么在循环之前需要at = []
。你知道吗然后,在循环中,不用直接指定给定的索引,只需使用
at.append(<computation>)
相关问题 更多 >
编程相关推荐