z位置(z_pos)に応じて力の値を返す関数を作った。私はこれらの結果(ここではエンジニアのせん断図)をプロットしたいと思いますが、次のエラーが発生します。matplotlibで関数の結果をプロットする方法
ValueError:複数の要素を持つ配列の真理値があいまいです。私はarangeとlinspaceとそれの両方を試してみました
a.any()またはa.allを()を使用し、ここでのコードを参照してください。
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()
ヘルプは非常に高く評価されます!
これは、関数が1つの値を返し、すべての結果値の配列を返さないため、望ましい結果を得られません。 – jotasi