收藏品的最大值?

时间:2015-01-07 14:17:23

标签: c# collections struct norm

我在集合中生成(x,y,z)坐标,如下所示:

this.facePoints3D = frame.Get3DShape();

foreach(Vector3DF vector in facePoints3D)  //vector has 121 points
 {
    float zvect = vector.Z           //collect z-points which is made of 121 points
 } 
//where Vector3DF is a struct of floats (x, y, z)

问题是我想在C#中找到zvect的L2规范。我查看了msdn的文档网站,似乎没有预定义的方法来执行此操作。

有没有人有想法?

1 个答案:

答案 0 :(得分:0)

根据我的理解,L2范数可以通过以下函数计算。

float L2Norm(Vector3DF Vec)
{
    return Math.Sqrt( Vec.X * Vec.X + 
                      Vec.Y * Vec.Y + 
                      Vec.Z * Vec.Z );
}

使用Linq,可以按如下方式计算集合中矢量的值。

foreach (double L2Norm in facePoints3D.Select(L2Norm))
{
    // do something with L2Norm
}