TypeError с ufunc побитовым xor
в моей программе, которая прослеживает путь частицы, я получаю следующую ошибку:
Traceback (most recent call last):
File "C:UsersFelixGoogle DriveResearchparticles.py", line 154, in <module>
bfield += b_X(r_p(r,pos[2]))*(r_p(r,pos[2])/r)
*((r-r_p(r,pos[2]))**2+pos[2]**2)^(-1/2)*np.array
([(1-r_p(r,pos[2])/r)*pos[0],(1-r_p(r,pos[2])/r)*pos[1],pos[2]])
TypeError: ufunc 'bitwise_xor' not supported for the input types,
and the inputs could not be safely coerced to any supported types
according to the casting rule ''safe''
Я не могу понять, что происходит. У меня нет экземпляров xor (хотя я полагаю, что он может быть закодирован в операторе if/else).
1 ответов
в оскорбительной строке вы используете ^
Если вы хотите **
поднять значение мощности. Python интерпретирует это как xor:
bfield += b_X(r_p(r,pos[2]))*(r_p(r,pos[2])/r)*((r-r_p(r,pos[2]))**2+
pos[2]**2)^(-1/2)*np.array([(1-r_p(r,pos[2])/r)*pos[0],
(1-r_p(r,pos[2])/r)*pos[1],pos[2]])
посмотреть:
http://docs.python.org/2/reference/expressions.html#binary-bitwise-operations