中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

航達建設網(wǎng)站正規(guī)的培訓機構有哪些

航達建設網(wǎng)站,正規(guī)的培訓機構有哪些,2017年做網(wǎng)站維護總結,網(wǎng)站運營維護中需要用到什么服務器文檔總目錄 本文目錄什么是Array類?Array類型訪問Array中的值加法與減法Array乘法其他按元素操作的運算array和matrix表達式之間的轉換英文原文(The Array class and coefficient-wise operations) 本頁旨在提供有關如何使用Eigen的Array類的概述和說明。 什么是A…

文檔總目錄

本文目錄

      • 什么是Array類?
      • Array類型
      • 訪問Array中的值
      • 加法與減法
      • Array乘法
      • 其他按元素操作的運算
      • array和matrix表達式之間的轉換

英文原文(The Array class and coefficient-wise operations)

本頁旨在提供有關如何使用Eigen的Array類的概述和說明。

什么是Array類?

Matrix類用于線性代數(shù)計算不同的是,Array類提供了通用目的數(shù)組。此外,Array類提供了一種執(zhí)行按系數(shù)運算的簡單方法,這可能沒有線性代數(shù)意義,例如對每一個元素都加一個常數(shù)或按系數(shù)將兩個數(shù)組相乘。

Array類型

Array是一個類模板,采用與Matrix相同的模板參數(shù)。與Matrix一樣,前三個模板參數(shù)是必需的:

Array<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>

最后三個模板參數(shù)是可選的。由于這與Matrix完全相同,因此不再在此解釋,僅參考Matrix 類。

Eigen還提供了一些常見的類型定義,其方式類似于Matrix類型定義,但有一些細微差別,因為Array一詞用于一維和二維數(shù)組。使用ArrayNt代表一維N個大小的標量,其中 N 和 t 是大小和標量類型,詳見[矩陣與向量運算](# 3.1.2 矩陣與向量運算)。對于二維數(shù)組類型,使用 ArrayNNt 表示。示例如下:

類型類型定義
Array<float,Dynamic,1>ArrayXf
Array<float,3,1>Array3f
Array<double,Dynamic,Dynamic>ArrayXXd
Array<double,3,3>Array33d

訪問Array中的值

就像矩陣一樣,使用括號運算符可以訪問數(shù)組中的值。另外,<<運算符可用于初始化數(shù)組(使用逗號初始化)或打印它們。

例如:

#include <Eigen/Dense>
#include <iostream>int main()
{Eigen::ArrayXXf  m(2,2);// assign some values coefficient by coefficientm(0,0) = 1.0; m(0,1) = 2.0;m(1,0) = 3.0; m(1,1) = m(0,1) + m(1,0);// print values to standard outputstd::cout << m << std::endl << std::endl;// using the comma-initializer is also allowedm << 1.0,2.0,3.0,4.0;// print values to standard outputstd::cout << m << std::endl;
}

輸出如下:

1 2
3 51 2
3 4

有關逗號初始化的更多信息,請參閱高級初始化。

加法與減法

兩個數(shù)組的加減法與矩陣相同。如果兩個數(shù)組的大小相同,并且加法或減法是按系數(shù)進行的,則該操作有效。

Array 還支持 array + scalar 的表達形式,這實現(xiàn)了對數(shù)組的每個系數(shù)都加一個常數(shù)。并且這是在Matrix類中不能直接使用的功能。

示例如下:

#include <Eigen/Dense>
#include <iostream>int main()
{Eigen::ArrayXXf a(3,3);Eigen::ArrayXXf b(3,3);a << 1,2,3,4,5,6,7,8,9;b << 1,2,3,1,2,3,1,2,3;// Adding two arraysstd::cout << "a + b = " << std::endl << a + b << std::endl << std::endl;// Subtracting a scalar from an arraystd::cout << "a - 2 = " << std::endl << a - 2 << std::endl;
}

輸出如下:

a + b = 2  4  65  7  98 10 12a - 2 = 
-1  0  12  3  45  6  7

Array乘法

當然你可以將一個數(shù)組乘以一個標量,這與矩陣相同。數(shù)組與矩陣不同的地方在于自身相乘,矩陣將乘法解釋為矩陣乘積,而數(shù)組將乘法解釋為系數(shù)乘積。因此,兩個數(shù)組相乘時它們必須具有相同的維度。

示例如下:

#include <Eigen/Dense>
#include <iostream>int main()
{Eigen::ArrayXXf a(2,2);Eigen::ArrayXXf b(2,2);a << 1,2,3,4;b << 5,6,7,8;std::cout << "a * b = " << std::endl << a * b << std::endl;
}

輸出如下:

a * b = 5 12
21 32

其他按元素操作的運算

除了上述的加法、減法和乘法運算符之外,Array 類還定義了其他按系數(shù)計算的運算。例如,abs() 方法對每個元素取絕對值,而sqrt()計算每個系數(shù)的平方根。如果你有兩個相同大小的數(shù)組,你可以調用min(.)來構造一個數(shù)組,其元素是兩個給定數(shù)組對應元素的最小值。這些操作在以下示例中進行了說明:

#include <Eigen/Dense>
#include <iostream>int main()
{Eigen::ArrayXf a = Eigen::ArrayXf::Random(5);a *= 2;std::cout << "a =" << std::endl<< a << std::endl;std::cout << "a.abs() =" << std::endl<< a.abs() << std::endl;std::cout << "a.abs().sqrt() =" << std::endl<< a.abs().sqrt() << std::endl;std::cout << "a.min(a.abs().sqrt()) =" << std::endl<< a.min(a.abs().sqrt()) << std::endl;
}

輸出如下:

a =1.36
-0.4221.131.191.65
a.abs() =1.36
0.4221.131.191.65
a.abs().sqrt() =
1.17
0.65
1.06
1.09
1.28
a.min(a.abs().sqrt()) =1.17
-0.4221.061.091.28

array和matrix表達式之間的轉換

什么時候應該使用Matrix 類的對象,什么時候應該使用 Array 類的對象呢?

首先, Matrix 類和Array類的方法不通用。如果需要進行線性代數(shù)運算,例如矩陣乘法,那么應該使用 Matrix 類;如果需要做元素運算,那么應該使用Array類。然而,有時并沒有那么簡單,而是需要同時使用Matrix 類和Array類。這種情況下,需要將Matrix 轉換為Array或相反。這樣就可以使用所有操作,而不管對象聲明為Matrix 還是Array。

Matrix 類有一個 .array() 方法可以將Matrix 轉換為Array。同樣,Array有一個 .matrix() 方法。由于Eigen表達式的抽象,這些轉換發(fā)生在編譯的時候,所以不需要任何運行時間成本。.array().matrix()既可以作為左值,也可以作為右值。

Eigen 禁止在表達式中混合使用MatrixArray。例如,不能將MatrixArray直接相加;運算符的操作對象要么都是Matrix,要么都是Array,但轉換后是可以的。此規(guī)則的例外是賦值運算符,允許將Matrix 賦值給Array,或將將 Array 賦值給Matrix。

以下示例展示了如何通過使用.array()方法對 Matrix 對象使用Array的方法。例如,語句 result = m.array() * n.array() 將兩個矩陣mn都轉換為數(shù)組,并使它們按系數(shù)相乘,再將結果分配給矩陣變量(這是合法的,因為Eigen允許將數(shù)組表達式賦值給矩陣變量)。

事實上,這種用例非常普遍,以至于Eigen為矩陣提供了一個 const .cwiseProduct(.) 方法來滿足按元素相乘的需求。

示例如下:

#include <Eigen/Dense>
#include <iostream>using Eigen::MatrixXf;int main()
{MatrixXf m(2,2);MatrixXf n(2,2);MatrixXf result(2,2);m << 1,2,3,4;n << 5,6,7,8;result = m * n;std::cout << "-- Matrix m*n: --\n" << result << "\n\n";result = m.array() * n.array();std::cout << "-- Array m*n: --\n" << result << "\n\n";result = m.cwiseProduct(n);std::cout << "-- With cwiseProduct: --\n" << result << "\n\n";result = m.array() + 4;std::cout << "-- Array m + 4: --\n" << result << "\n\n";
}

輸出如下:

-- Matrix m*n: --
19 22
43 50-- Array m*n: --5 12
21 32-- With cwiseProduct: --5 12
21 32-- Array m + 4: --
5 6
7 8

同樣,如果array1array2是數(shù)組,則表達式array1.matrix() * array2.matrix()可以計算他們的矩陣乘積。

接下來是一個更復雜一點的示例,表達式(m.array() + 4).matrix() * m對每一個元素都加4,然后計算表達式結果與矩陣m的矩陣乘積。類似的,表達式(m.array() * n.array()).matrix() * m按元素計算矩陣mn的乘積,然后計算其結果與m的矩陣乘法。

示例如下:

#include <Eigen/Dense>
#include <iostream>using Eigen::MatrixXf;int main()
{MatrixXf m(2,2);MatrixXf n(2,2);MatrixXf result(2,2);m << 1,2,3,4;n << 5,6,7,8;result = (m.array() + 4).matrix() * m;std::cout << "-- Combination 1: --\n" << result << "\n\n";result = (m.array() * n.array()).matrix() * m;std::cout << "-- Combination 2: --\n" << result << "\n\n";
}

輸出如下:

-- Combination 1: --
23 34
31 46-- Combination 2: --41  58
117 170
http://www.risenshineclean.com/news/58696.html

相關文章:

  • 如何生成網(wǎng)站的二維碼輸入關鍵詞自動生成標題
  • 凡科做網(wǎng)站html網(wǎng)站模板免費
  • 做機械的專業(yè)外貿網(wǎng)站有哪些鏈接下載
  • python做網(wǎng)站原理怎么宣傳自己的產品
  • 有做網(wǎng)站設計的嗎引擎優(yōu)化seo是什么
  • 怎樣做網(wǎng)站關鍵詞優(yōu)化網(wǎng)站推廣優(yōu)化外包公司哪家好
  • 真人男女直接做的視頻網(wǎng)站深圳華強北新聞最新消息今天
  • 怎么做網(wǎng)站架構網(wǎng)絡推廣公司收費標準
  • 網(wǎng)站首頁圖片素材長圖大全搜索引擎哪個最好用
  • wordpress站群版seo包年服務
  • 建筑公司電話號碼重慶網(wǎng)頁優(yōu)化seo
  • 網(wǎng)站名稱能用商標做名稱嗎公司網(wǎng)絡推廣網(wǎng)站
  • 網(wǎng)站的著陸頁啟信聚客通網(wǎng)絡營銷策劃
  • wordpress 禁用縮略圖電腦優(yōu)化大師官方免費下載
  • WordPress太占空間了如何優(yōu)化培訓體系
  • 沈陽男科醫(yī)院哪家好點兒濟南seo怎么優(yōu)化
  • 視頻 播放網(wǎng)站怎么做的產品推廣活動策劃方案
  • 做網(wǎng)站項目后臺的seo技術專員招聘
  • wordpress展示型外貿網(wǎng)站杭州余杭區(qū)抖音seo質量高
  • 蒼南網(wǎng)站設計公司河南今日頭條新聞
  • 做網(wǎng)站外包需要提供什么百度搜索關鍵詞優(yōu)化
  • 網(wǎng)站搭建策劃書深圳全網(wǎng)推互聯(lián)科技有限公司
  • wordpress選擇表優(yōu)化網(wǎng)站軟文
  • 公司網(wǎng)站制作導航東莞企業(yè)網(wǎng)站推廣
  • 怎么做網(wǎng)站百度貼吧網(wǎng)站seo快速排名優(yōu)化的軟件
  • 深圳羅湖網(wǎng)站設計公司價格seo具體是什么
  • dede怎么做視頻網(wǎng)站網(wǎng)站seo設計
  • 網(wǎng)站建設計劃建議做網(wǎng)頁用什么軟件好
  • 無備案網(wǎng)站微信網(wǎng)絡營銷和電子商務區(qū)別
  • 什么是外包seo網(wǎng)站營銷推廣公司