【发布时间】:2021-06-04 05:20:22
【问题描述】:
是否有 Scipy 或 Numpy 函数可以在 python 中完成dsearchn MATLAB 命令的工作?
dsearchn 返回给定向量中最接近输入值的索引。
【问题讨论】:
标签: python python-3.x matlab numpy scipy
是否有 Scipy 或 Numpy 函数可以在 python 中完成dsearchn MATLAB 命令的工作?
dsearchn 返回给定向量中最接近输入值的索引。
【问题讨论】:
标签: python python-3.x matlab numpy scipy
【讨论】:
dsearchn?因为它没有给出欧几里得空间中距离最小的值索引。我也查看了文档,但我不明白它是如何工作的,以及为什么你转置了 PQ? PQ 可以是标量,不需要转置。
query 的返回值包含一个值和一个索引。您阅读了哪些文档?
你可以这样做:
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])
【讨论】:
v 的距离相同。
dsearchn 用于多维点,而不仅仅是标量
因为 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]
【讨论】: