layout: post
title: “Eigen - The Array class”
date: 2019-5-28
description: “Eigen說明文檔(1.3)”
tag: Eigen
介紹Array 類和其相關的係數運算方式
什麼是Array類?
Array類跟前面介紹的Matrix相似,不過在形式和運算方式上略有區別。Array主要用於線性代數的運算中。
Array類的形式如下:
Array<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>
以ArrayNt 爲例,其表示的是一維的數組,N和t分別表示數組大小和數值類型。對於二維的數組,通常採用ArrayNNt的形式。
Array數組賦值
Array數組的賦值方式可以參見上圖,具體形式與Matrix相同。這裏就不再贅述。
Array數組的數學運算
Array數組的加減運算與MAtrix相同,不過,如果兩個Array,a,b之間的運算就要求數組a和數組b的形式相同。
需要特殊注意的是,Array的乘法運算是相應元素之間的運算。這是與Matrix最大的區別。
相應的Array提供了一系列相關的函數運算:
- .abs() :對數組中的元素求絕對值
- .sqrt() :對數組的元素開根號
- .min() :這個函數是比較兩個Array數組,相應位置上取二者較小值
Array數組與Matrix數組之間的轉化
Matrix 和 Array 數組之間的轉換可以通過函數:.array() 、.matrix()實現。而且,Matrix也可以調用函數.cwiseProduct()實現Array的數值運算方式。
而且,Matrix 和Array在數組形式相同的情況下支持相互賦值。
*轉載請註明原地址,鄧輝的博客:[https://github.com/my-lord/mylord.github.io](https://github.com/my-lord/mylord.github.io) 謝謝!*