2024-06-28 15:00:56 发布
网友
是否有一个Scipy或Numpy函数在python中执行dsearchnMATLAB命令
dsearchn
dsearchn返回给定向量中与输入值最接近的值的索引
您可以执行以下操作:
x = np.array([1.1, 1.2, 1.22, 1.4]) v = 1.21 def dsearchnn(x, v): return np.where(np.abs(x-v) == np.abs(x-v).min())[0] dsearchnn(x, v) array([1,2])
对于x和v都是向量:
def dsearchn(x, v): z=np.atleast_2d(x)-np.atleast_2d(v).T return np.where(np.abs(z).T==np.abs(z).min(axis=1))[0]
近似等效效率的方法可能是scipy的^{}或更好的^{}:
from scipy.spatial import KDTree kdt = KDTree(P.T) kdt.query(PQ.T)
这里P和PQ是来自^{}文档的点和查询点。MATLAB使用第一个维度作为点的维度,而scipy使用最后一个维度,因此使用转置
P
PQ
与MATLAB方法不同,MATLAB方法是一步完成的,使用KDTree可以分两步完成:首先构建树对象,然后在树对象上运行^{}
KDTree
您可以执行以下操作:
对于x和v都是向量:
近似等效效率的方法可能是scipy的^{} 或更好的^{} :
这里} 文档的点和查询点。MATLAB使用第一个维度作为点的维度,而scipy使用最后一个维度,因此使用转置
P
和PQ
是来自^{与MATLAB方法不同,MATLAB方法是一步完成的,使用}
KDTree
可以分两步完成:首先构建树对象,然后在树对象上运行^{相关问题 更多 >
编程相关推荐