C#数组距离函数

时间:2013-03-27 16:14:58

标签: arrays c#-4.0 distance

有没有简单的方法来计算相同长度的2个阵列上的某种距离函数,以便检查它们的区别?数组都是浮点数,每个bin可以为空或包含值。我这样做是因为我需要比较两个不同图像的两个颜色直方图。 谢谢

编辑:通过距离函数,我的意思是像两个阵列上的Levenshtein距离,所以我可以检查它们之间的“差异”。我希望根据计算的距离来检查物体是否在图像中。

2 个答案:

答案 0 :(得分:1)

如果您只想要各个值之间的差异总和,可以使用:

var distance = array1.Zip(array2, (a,b) => Math.Abs(a-b)).Sum();

答案 1 :(得分:1)

使用简单的for循环结束迭代每个项目:

private static float ArrayDistanceFunction(float[] array1, float[] array2)
{
        float total = 0;

        for (int i = 0; i < array1.Length; i++)
        {
            total += Math.Abs(array1[i] - array2[i]);
        }
        return total;
}

Reed Copsey的答案确实有效但不知何故它的表现比我的实施慢