Matlab-两个向量之间特定元素的欧氏距离

Matlab-两个向量之间特定元素的欧氏距离,matlab,indexing,distance,Matlab,Indexing,Distance,我试图找到二维数组中一个元素到另一个相同二维数组元素的最小距离的坐标/索引。我有一个来自边缘检测问题的二值图像和一个地面真实图像。例如,我将A作为我的二值图像,B作为地面真实图像: A = [0 255 255 255;255 255 255 255;255 255 255 255;255 255 255 255 ] B = [255 255 255 255;255 255 255 255; 255 255 0 255; 255 255 0 0] 0为黑色,255为白色。我的算法是这样的:

我试图找到二维数组中一个元素到另一个相同二维数组元素的最小距离的坐标/索引。我有一个来自边缘检测问题的二值图像和一个地面真实图像。例如,我将A作为我的二值图像,B作为地面真实图像:

A = [0 255 255 255;255 255 255 255;255 255 255 255;255 255 255 255 ]

B = [255 255 255 255;255 255 255 255; 255 255 0 255; 255 255 0 0]
0为黑色,255为白色。我的算法是这样的:

 for n=1:maxindex
if(A(n)==0&&B(n)==0)
distance(n) = 0;

elseif(A(n)==0&&B(n)==255)
for m=1: maxindex
     if(B(m)==0&&m~=n)
        translate index to subscripts
        compute euclidean distance
        store value in temporary vector
    end
 end
find minimum in temporary vector
distance(n) = minimum found
结束 结束


对于大型图像,该算法确实需要很长时间,因为当存在不匹配时,它是穷尽的。Matlab中有没有一个函数可以让它更快?

你以前用谷歌搜索过吗?第一个结果是可以设置为欧几里德距离。我尝试了谷歌搜索,knnsearch是出现的一个,其他的一个。也许我的措辞不对。谢谢你的链接。Pdist表示一个矩阵。我会试着了解我如何用两个人做这件事。