Я пытался это закодировать:
Код: Выделить всё
import cplot
import math
import numpy as np
def f(z):
if math.floor(np.real(z)[0])%2==0:
res =z
else:
res=np.sin(z)
return res
plt = cplot.plot(f, (-10, +10, 3000), (-10, 10, 3000),5)
plt.show()
Я думал, что это из-за того, что я использовал математику. и np. поэтому я протестировал более простую функцию:
if Re(z) >=0, f(z) =z, иначе f(z)= sin(z)
Код: Выделить всё
import cplot
import numpy as np
def f(z):
if np.real(z)[0]>=0:
res =z
else:
res=np.sin(z)
return res
plt = cplot.plot(f, (-10, +10, 3000), (-10, 10, 3000),5)
plt.show()
Я подумал, возможно, проблема в этом из [0] в np.real(z)[0], но его удаление приведет к ошибке
ValueError: Истинное значение массива, содержащего более одного элемента, неоднозначно. Используйте a.any() или a.all()
Я использовал их, и результат все тот же, он полностью игнорирует z в моем втором коде проблема также заключается в знаке >; если я изменю его на
Подробнее здесь: https://stackoverflow.com/questions/788 ... l-function