Koşullu olarak tanımlanan bir işlevi çizmeye çalışıyorum. Spesifik olarak: U (x) = (2 ** delta)/((Dd) ** delta) * (D/2 - (x-x0)) ** delta, abs için (x-x0) D'den daha az/Aksi halde 2 ve 0.Numpy ve Pyplot ile Koşullu Plotlama
Ancak benim sorunum, x, x0 numpy dizileri olmasını istiyorum, çünkü bunları benim gerçek kodun geri kalanında kullanıyorum.
Ben-kurdunuz şu örneği: satır tempx<tempD
bir listesinin bir Hakikat-değeri belirsiz olduğu hatayı yükseltir beri
import numpy as np
import matplotlib.pyplot as plt
AD = 0.2
D = 0.4
delta = 8
def Parabolic(x, delta, D, AD):
x0 = np.round(x)
tempx = np.abs(x-x0)
tempD = D/2*np.ones(len(x))
if tempx<tempD:
return ((2**delta)/(D-AD)**delta)*(D/2 - (x-x0))**delta
else:
return 0
figure = plt.figure(figsize=(10,8), dpi=72)
xmin = -1.0
xmax = 1.0
X = np.linspace(xmin,xmax,1000)
plt.plot(X, Parabolic(X, delta=8, D=0.4, AD=0.2))
Açıkçası bu örnek, çalışmıyor.
Numune belgelerini araştırdım ve np.less (tempx, tempD) işlevini buldum. Ancak tempx < tempD
'u np.less(tempx, tempD)
ile değiştirirsem yine de bir kez daha tüm listenin gerçek değerini talep ediyorum. Sorunun uyuşma ile değil, fakat numpy'nin sağladığı mantıksal işlevlerin nasıl kullanılacağını anlayamamamla ilgili olduğunu anlıyorum.
Başka bir gönderide bu şekilde yanıt verdiysem özür dilerim, bu forumu aradım ancak curve()
yönteminin dışında başka bir şey bulamadım. Ancak, numpy.array formatımı gerçek kodlarımda kullanmak için tutmak istiyorum. Bahse girerim cevabın çok basit olması gerektiğini düşünüyorum, sadece düşünemiyorum.
, http: // stackoverflow.com/a/30081652/901925 ve onun kenar çubuğu. – hpaulj