我做了一个函数,它根据z位置(z_pos)返回一个力的值。我想绘制这些结果(这里是工程师的剪切图),但是我得到以下错误:如何在python中用matplotlib绘制函数结果
ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()
我曾与人气指数和linspace尝试了两个,在这里看到的代码:
import matplotlib.pyplot as plt
import numpy as np
#values in kN and m
FyFL = 520
FyRL = 1246
L = 40.
Lf1 = 2.
Lf2 = 25.5
g = 9.81
W = 60000
q = (3*g*W/L)/1000 #kN/m
print q
def int_force_y(FyFL, FyRL, L, Lf1, Lf2, q, z_pos):
if z_pos <= Lf1:
int_fc_y = -q*z_pos
elif z_pos > Lf1 and z_pos < Lf1+Lf2:
int_fc_y = -q*Lf1 + FyFL-q*z_pos
elif z_pos >= Lf2 and z_pos <= 40.:
int_fc_y = -q*Lf1 + FyFL-q*(Lf1+Lf2)-q*z_pos
else:
return "No valid z_pos"
return int_fc_y
z_pos = np.arange(0,41,1)
y = int_force_y(FyFL, FyRL, L, Lf1, Lf2, q, z_pos)
plt.plot(z_pos,y)
plt.show()
帮助非常感谢!
这不会给他想要的结果,因为那么函数将只返回一个值而不是所有结果值的数组。 – jotasi