2015-01-07 57 views
0

我生成(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的文档网站,似乎没有预先定义的方式来做到这一点。

有没有人有想法?

+0

'Vector3DF'定义在哪里?它是框架中的一种类型吗? – Codor

+1

@Codor他说“Vector3DF是浮点数(x,y,z)的结构” – Franck

+0

哦,谢谢我忽视了评论。 – Codor

回答

0

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

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 
} 
+0

您可以跳过'Math.Abs​​'这种情况,因为它不是一个复杂的向量。 – Dirk

+0

感谢您的提示;显然我的大脑是在自动驾驶仪上。 – Codor

+0

谢谢,但在我的情况下,我感兴趣的是我在上面输入的121个zvect的标准。 – Calorified