2015-01-07 85 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