Eigen官網(wǎng)教程(5) 規(guī)約、范數(shù)等

轉(zhuǎn)載:Eigen官網(wǎng)教程(5) 規(guī)約、范數(shù)等
版權(quán)聲明:本文為CSDN博主「一土山石」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/SKANK911/article/details/89279675

1-Reductions


image.png

2-范數(shù)計算

向量的平方范數(shù)由squaredNorm()獲得,等價于向量對自身做點積,也等同于所有元素平方和。Eigen也提供了norm()范數(shù),返回的是squaredNorm()的根。這些操作也適用于矩陣。如果想使用其他元素級的范數(shù),使用lpNorm<p>()方法,當求無窮范數(shù)時,模板參數(shù)p可以取特殊值Infinity,得到的是所有元素的最大絕對值。


image.png

矩陣的1范數(shù)和無窮范數(shù)也可以用下面的方法計算:

image.png

3 -布爾規(guī)約**

如下的操作得到的是布爾值

  1. all()返回真,如果矩陣或數(shù)組的所有元素為真
  2. any()返回真,如果矩陣或數(shù)組至少有一個元素為真
  3. count()返回元素為真的個數(shù)


    image.png

4-迭代

當需要獲得元素在矩陣或數(shù)組中的位置時使用迭代。Index 索引

image.png

5 部分規(guī)約


image.png
image.png

6 - 部分規(guī)約和其他操作的結(jié)合**

使用部分規(guī)約操作得到的結(jié)果去做其他的操作也是可以的,如下例子用于得到矩陣中元素和最大的一列


image.png

7 -結(jié)合廣播和其他操作**

廣播也可以和其他操作結(jié)合,比如矩陣或數(shù)組的運算、規(guī)約和部分規(guī)約操作。下面介紹一個更加復雜的例子,演示了在矩陣中找到和給定向量最接近的一列,使用到了歐氏距離。

image.png

這句話做的工作是:

1)m.colwise()-v是一個廣播操作,矩陣m的每一列減去v,得到一個新的矩陣

image.png

2)(m.colwise() - v).colwise().squareNorm()是部分規(guī)約操作,按列計算矩陣的平方范數(shù),得到一個行向量

image.png

3)最終minCoeff(&index)根據(jù)歐氏距離獲得矩陣中最接近v的一列的索引。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容