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

當(dāng)前位置: 首頁 > news >正文

航達(dá)建設(shè)網(wǎng)站上海優(yōu)質(zhì)網(wǎng)站seo有哪些

航達(dá)建設(shè)網(wǎng)站,上海優(yōu)質(zhì)網(wǎng)站seo有哪些,做網(wǎng)站用微軟雅黑,微企幫做網(wǎng)站文檔總目錄 本文目錄什么是Array類?Array類型訪問Array中的值加法與減法Array乘法其他按元素操作的運算array和matrix表達(dá)式之間的轉(zhuǎn)換英文原文(The Array class and coefficient-wise operations) 本頁旨在提供有關(guān)如何使用Eigen的Array類的概述和說明。 什么是A…

文檔總目錄

本文目錄

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

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

本頁旨在提供有關(guān)如何使用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類型定義,但有一些細(xì)微差別,因為Array一詞用于一維和二維數(shù)組。使用ArrayNt代表一維N個大小的標(biāo)量,其中 N 和 t 是大小和標(biāo)量類型,詳見[矩陣與向量運算](# 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

有關(guān)逗號初始化的更多信息,請參閱高級初始化。

加法與減法

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

Array 還支持 array + scalar 的表達(dá)形式,這實現(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乘法

當(dāng)然你可以將一個數(shù)組乘以一個標(biāo)量,這與矩陣相同。數(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ù)組,你可以調(diào)用min(.)來構(gòu)造一個數(shù)組,其元素是兩個給定數(shù)組對應(yīng)元素的最小值。這些操作在以下示例中進(jìn)行了說明:

#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表達(dá)式之間的轉(zhuǎn)換

什么時候應(yīng)該使用Matrix 類的對象,什么時候應(yīng)該使用 Array 類的對象呢?

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

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

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

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

事實上,這種用例非常普遍,以至于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ù)組,則表達(dá)式array1.matrix() * array2.matrix()可以計算他們的矩陣乘積。

接下來是一個更復(fù)雜一點的示例,表達(dá)式(m.array() + 4).matrix() * m對每一個元素都加4,然后計算表達(dá)式結(jié)果與矩陣m的矩陣乘積。類似的,表達(dá)式(m.array() * n.array()).matrix() * m按元素計算矩陣mn的乘積,然后計算其結(jié)果與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://m.risenshineclean.com/news/59417.html

相關(guān)文章:

  • 有沒有什么做統(tǒng)計的網(wǎng)站網(wǎng)絡(luò)營銷比較好的企業(yè)
  • 如何解決網(wǎng)站只收錄首頁的一些辦法小程序制作
  • cms網(wǎng)站地圖模板東莞搜索引擎推廣
  • 開淘寶店和做網(wǎng)站有什么區(qū)別福鼎網(wǎng)站優(yōu)化公司
  • 直接打域名訪問網(wǎng)站關(guān)鍵詞推廣工具
  • 網(wǎng)站制作設(shè)及的技術(shù)產(chǎn)品營銷策劃方案3000字
  • 廣州定制網(wǎng)站建設(shè)廣東seo網(wǎng)站推廣代運營
  • 成都網(wǎng)站開發(fā)哪個好深圳seo優(yōu)化排名
  • 嵌入式培訓(xùn)班多少錢seo優(yōu)化推廣軟件
  • 企業(yè)網(wǎng)站備案 名稱沈陽seo博客
  • 伊通縣建設(shè)局網(wǎng)站常德政府網(wǎng)站
  • 學(xué)校英語網(wǎng)站欄目名稱域名備案
  • WordPress漢化卡片式主題長嶺網(wǎng)站優(yōu)化公司
  • 做直播網(wǎng)站需要什么環(huán)球軍事網(wǎng)
  • 網(wǎng)站建設(shè)好之后怎么自己推廣免費推廣引流平臺有哪些
  • 服務(wù)器做網(wǎng)站需安裝哪些軟件佛山網(wǎng)站建設(shè)排名
  • 外包做網(wǎng)站賺錢么app注冊推廣拉人
  • 濟(jì)南做網(wǎng)站哪家便宜seo項目經(jīng)理
  • 網(wǎng)站怎么添加js廣告位免費seo搜索優(yōu)化
  • 常德論壇網(wǎng)站看廣告賺錢
  • 住房和城鄉(xiāng)建設(shè)部網(wǎng)站安廣東省淘寶指數(shù)官網(wǎng)
  • 優(yōu)化網(wǎng)站用軟件好嗎山東一級造價師
  • 建設(shè)摩托車官網(wǎng)旗艦店寶雞seo排名
  • 甘肅省蘭州市建設(shè)廳網(wǎng)站硬件優(yōu)化大師
  • 用dreamever如何建設(shè)網(wǎng)站百度指數(shù)數(shù)據(jù)官網(wǎng)
  • 什么系統(tǒng)做網(wǎng)站好2022年最新新聞播報稿件
  • 濰坊做網(wǎng)站個人工作室cms自助建站系統(tǒng)
  • 個人網(wǎng)站建設(shè)工作室深圳網(wǎng)站設(shè)計十年樂云seo
  • 怎么做賣花的網(wǎng)站9個廣州seo推廣神技
  • 星沙做淘寶店鋪網(wǎng)站seo偽原創(chuàng)工具