matlab - 如何找到两个矩阵之间最近的两个点?

标签 matlab matrix coordinates point closest

我有

X = (Yt.*sin(W))-(Xt.*cos(W));
Y = (Yt.*cos(W))+(Xt.*sin(W));  % which give the coordinates X and Y. 
X_inv = R.*sin(B_involute); 
Y_inv = R.*cos(B_involute);     % which give the coordinates X_inv and Y_inv.

我需要找到XYX_invY_inv之间最近的两个点。

从现在开始非常感谢。

最佳答案

您可以使用 pdist2 有效计算成对距离

D = pdist2( [X(:) Y(:)], [X_inv(:) Y_inv(:)] );

一旦获得了成对距离,就很容易找到最小距离

[md mi] = min(D(:));

将线性索引转换为对索引

[idx, inv_idx] = ind2sub( size(D), mi );

结果

fprintf(1, 'Closest points are [%d]: (%f,%f) -> [%d]: (%f,%f)\n',...
        idx, X(idx), Y(idx), inv_idx, X_inv(inv_idx), Y_inv(inv_idx) );

关于matlab - 如何找到两个矩阵之间最近的两个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984199/

相关文章:

c++ - OpenCV idft() 和 MATLAB ifft2 的结果不匹配

MATLAB fitcSVM 权重向量

C 矩阵维度与声明不同

python - 如何抵消极坐标计算直角坐标的误差

math - 钻石上的像素坐标

Matlab:复制数组的菱形部分

matlab - 如何减少matlab中子图周围的边界?

matlab - 如何获得垂直于一组向量的向量(使用Matlab)?

matrix - 用于拟合 scikit 邻居/半径分类的预计算矩阵

C++ OpenGL 坐标转换