2017-02-07 2 views
0

Ich versuche, zwei Funktionen func1 und func2 mit Matplotlib und Python zu plotten. Ich bekomme immer einen ValueError für den folgenden Code und habe keine Ahnung, was falsch ist. Ich habe verwandte Fragen durchsucht, eine Menge Dinge ausprobiert und nichts scheint zu funktionieren.Python matplotlib ValueError: Der Wahrheitswert eines Arrays mit mehr als einem Element ist mehrdeutig

import numpy as np 
import matplotlib.pyplot as plt 

fig, ax = plt.subplots(1, 1) 
plt.xlim(0, 10) 
plt.ylim(0, 10) 
plt.xlabel('$X$') 
plt.ylabel('$Outputs$') 
plt.title('Title') 

x = np.arange(0, 10, .1) 

def func1(X): 
    output = max(3*X/7 - 3/7, 0, 12*X/35 - 3/35) 
    return output 

def func2(X): 
    output = max(3*X/7 - 3/7, 0) 
    return output 

plt.plot(x, func1(x), 'g') 
plt.plot(x , func2(x), 'b') 

plt.show() 

Antwort

1

max(2,3) ist klar 3, weil 3 > 2.

Aber wenn wir ndarray Argumente vergleichen, wir haben nicht ein einziges skalare Ergebnis erhalten, aber ein Array:

In [23]: np.array([3,1]) > np.array([1,2]) 
Out[23]: array([ True, False], dtype=bool) 

und wir können nicht eine Reihe von bools in einem einzigen value-- es umwandeln sollte Sei wahr, weil es mindestens einen gibt, oder Falsch, weil es nicht alles Wahr ist? Oder, wie die Fehlermeldung es ausdrückt: "Der Wahrheitswert eines Arrays mit mehr als einem Element ist mehrdeutig". Dies bedeutet, dass die eingebaute max-Funktion fehlschlägt, da versucht wird, zu verzweigen, ob ein Vergleich wahr ist oder nicht.

Zum Glück, wie es aussieht wie Sie die paarweisen Maxima wollen, hat numpy bereits eine Funktion, die das behandelt, np.maximum. Ersetzen der eingebauten max mit np.maximum in Ihrem Code gibt mir:

working graph

+0

Diese fast gearbeitet, aber jetzt etwas sehr Seltsames vor sich geht. Ich habe max zu np.maximum geändert, aber meine Grafik sieht nicht wie deine aus, sondern sie geht durch den Ursprung. Irgendwelche Gedanken darüber, warum das so ist? Etwas seltsam mit meinen Pycharm-Konfigurationen? – user7531647

Verwandte Themen