我的目标是找到最接近单个点的段(在段数组中)。获取 2D 坐标数组之间的点积有效,但使用 3D 坐标会出现以下错误:
*ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 3)*
A = np.array([[1,1,1],[2,2,2]])
B = np.array([[3,3,3], [4,4,4]])
dp = np.dot(A,B)
Run Code Online (Sandbox Code Playgroud)
dp应该返回2个值的点积[1,1,1]@[3,3,3]和[2,2,2]@[4,4,4]
// 谢谢大家。
这是找到最接近单个点的线段的最终解决方案。
欢迎任何优化。
import numpy as np
import time
#find closest segment to single point
then = time.time()
#random line segment
l1 = np.random.rand(1000000, 3)*10
l2 = np.random.rand(1000000, 3)*10
#single point
p = np.array([5,5,5]) #only single …Run Code Online (Sandbox Code Playgroud)