我有一個存盤 numpy 陣列的串列,稱為Triangle
File "main.py", line 63, in triangleCase
Triangle.remove(OB)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我也得到了
AttributeError: 'numpy.ndarray' object has no attribute 'append'
但我無法復制這個
編輯:功能:
def triangleCase():
global Triangle, d
OA = Triangle[-1]
OB = Triangle[-2]
OC = Triangle[-3]
AB = OB - OA
AO = - OA
AC = OC - OA
ABperp = tripleProd(AC,AB,AB) #(AC x AB) x AB
ACperp = tripleProd(AB,AC,AC) #(AB x AC) x AC
if dot(ABperp, AO) > 0: #RAB
Triangle.remove(OC)
d = ABperp
return False
if dot(ACperp,AO) > 0: #RAC
Triangle.remove(OB)
d = ACperp
return False
return True #RABC
給出錯誤的 Triangle 和 d 的一個值是:
Error: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Triangle: [array([-17.462565 , 20.63435875, 0. ]), array([31.69419203, -2.95257267, 0. ]), array([ 13.97174987, -18.31107765, 0. ]), array([-52.2462343 , 32.56502419, 0. ]), array([-8.3122833 , 64.51505875, 0. ]), array([ -4.82763387, -49.86062945, 0. ])]
d: [ 8.3122833 -64.51505875 -0. ]
uj5u.com熱心網友回復:
從您的錯誤中,我了解到您嘗試使用 remove 從陣列中洗掉一個元素。但是,您不能對陣列執行此操作。你需要這樣做:
def triangleCase():
global Triangle, d
OA = Triangle[-1]
OB = Triangle[-2]
OC = Triangle[-3]
AB = OB - OA
AO = - OA
AC = OC - OA
ABperp = tripleProd(AC,AB,AB)
ACperp = tripleProd(AB,AC,AC)
if dot(ABperp, AO) > 0: #RAB
Triangle.remove(OC)#Triangle=np.delete(Triangle,-3,0)
d = ABperp
return False
if dot(ACperp,AO) > 0: #RAC
Triangle.remove(OB)#Triangle=np.delete(Triangle,-2,0)
d = ACperp
return False
return True #RABC
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/475076.html
上一篇:熊貓向前填充-相同的值
