, хотя я знаю, что есть различные вопросы, которые ищут решения для этого сообщения об ошибке. Мне еще предстоит найти ответ, который поможет мне решить мой код, чтобы заставить сравнение работать, у меня есть кодЗначение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.all()
def f(x,d,h,L):
ans=0.
if ((0.<=x) & (x<d)):
ans=h*(x/d)
elif ((d<=x) & (x<=L)):
ans=((L-x)/(L-d))
return ans
x=np.linspace(0,10,1000)
h=5*10**(-3)
d=16*10**(-2)
L=64.52*10**(-2)
func=f(x,d,h,L)
Но когда я пытаюсь запустить его, я получаю сообщение об ошибке, указывающее на if
линии с кодом ошибки в названии, я попытался предлагаемые решения, приведенные в подобных вопросах, таких как использование np.logical_and
или and
вместо из &
, но все три дают ту же ошибку, пожалуйста, помогите мне
'x' - это массив. Вы хотите, чтобы 'f' делал одно, если какой-либо/все' x' попадали в один диапазон, а другой, если они этого не делают? Или вы хотите, чтобы это делало одно с величинами 'x', которые попадали в один диапазон, и другая вещь для других значений' x'? Другими словами, тест 'if' распространяется на все« x »или на отдельные элементы? – hpaulj
Другой способ поставить мой вопрос - работает ли функция правильно, если вы передаете ей элементы 'x' в отдельности? – hpaulj