Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays C#阵列距离函数_Arrays_C# 4.0_Distance - Fatal编程技术网

Arrays C#阵列距离函数

Arrays C#阵列距离函数,arrays,c#-4.0,distance,Arrays,C# 4.0,Distance,有没有简单的方法来计算相同长度的两个数组上的某种距离函数,以便检查它们的差异?数组都是浮动的,每个存储箱可能是空的或包含一个值。我这样做是因为我需要比较两个不同图像的两个颜色直方图。 多谢各位 编辑:我所说的距离函数是指两个数组上的Levenshtein距离,这样我可以检查两个数组之间的“差异”。我希望根据计算出的距离来检查对象是否在图像中。如果您只需要单个值之间差异的总和,可以使用: var distance = array1.Zip(array2, (a,b) => Math.Abs(

有没有简单的方法来计算相同长度的两个数组上的某种距离函数,以便检查它们的差异?数组都是浮动的,每个存储箱可能是空的或包含一个值。我这样做是因为我需要比较两个不同图像的两个颜色直方图。 多谢各位


编辑:我所说的距离函数是指两个数组上的Levenshtein距离,这样我可以检查两个数组之间的“差异”。我希望根据计算出的距离来检查对象是否在图像中。

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

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

最后使用一个简单的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;
}
专用静态浮点数组距离函数(float[]array1,float[]array2)
{
浮动总数=0;
for(int i=0;i

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

定义“两个阵列之间的距离”。对它进行了测试,它仍然有效,但当它的表现真的很慢时。。。最后使用了一个简单的for循环。但仍然是thx人:)