Ich habe eine Funktion, die einen Wert für eine Kraft abhängig von der z-Position (z_pos) zurückgibt. Ich möchte diese Ergebnisse darstellen (Scherdiagramm für die Ingenieure hier), aber ich bekomme den folgenden Fehler:Wie Funktionsergebnisse mit Matplotlib in Python plotten
ValueError: Der Wahrheitswert eines Arrays mit mehr als einem Element ist mehrdeutig. Verwenden Sie a.any() oder a.All()
ich versucht habe es sowohl mit arange und linspace finden Sie den Code hier:
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()
Hilfe wird sehr geschätzt!
Das wird ihm nicht das gewünschte Ergebnis geben, da die Funktion dann nur einen Wert und nicht ein Array aller Ergebniswerte zurückgibt. – jotasi