我在集合中生成(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 :(得分: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
}