第4章MATLAB70的矩陣和數(shù)組_第1頁(yè)
第4章MATLAB70的矩陣和數(shù)組_第2頁(yè)
第4章MATLAB70的矩陣和數(shù)組_第3頁(yè)
第4章MATLAB70的矩陣和數(shù)組_第4頁(yè)
第4章MATLAB70的矩陣和數(shù)組_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版第4章 MATLAB7.0的矩陣和數(shù)組lMATLAB的基本數(shù)據(jù)結(jié)構(gòu)為矩陣,其所有運(yùn)算都是基于矩陣進(jìn)行的。從形式上看,矩陣可以理解成二維的數(shù)組,矩陣可以方便地存儲(chǔ)和訪問MATLAB中眾多數(shù)據(jù)類型,構(gòu)成矩陣的元素可以是MATLAB中的任何數(shù)據(jù)類型。本章主要講解矩陣和數(shù)組的基本結(jié)構(gòu)即操作內(nèi)容包括矩陣的生成、矩陣的拼接、矩陣變形、矩陣元素的尋訪、獲取矩陣的信息,各種特殊矩陣類型以及高維數(shù)組的知識(shí)。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.1 創(chuàng)建矩陣l矩陣是所有MATLAB運(yùn)算的基礎(chǔ),用戶如果要實(shí)現(xiàn)科學(xué)運(yùn)算、程序設(shè)計(jì)、特性繪制等目標(biāo),必須要確定

2、矩陣的類型,并建立矩陣。在MATLAB中創(chuàng)建一個(gè)矩陣可以有兩種常用的方法,一是直接輸入矩陣元素,另一種是調(diào)用矩陣創(chuàng)建函數(shù)。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.1.1 輸入元素創(chuàng)建簡(jiǎn)單矩陣l對(duì)于簡(jiǎn)單的矩陣,特別是元素?cái)?shù)目不多的矩陣,逐個(gè)輸入矩陣元素是最常用、最便捷的矩陣創(chuàng)建方法,其遵循以下3條原則:l運(yùn)用矩陣構(gòu)造符包含所創(chuàng)建矩陣的所有元素;l使用逗號(hào)“,”或者空格“ ”分隔矩陣的列;l使用分號(hào)“;”或者回車鍵分隔矩陣的行。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版 4.1.2 調(diào)用函數(shù)創(chuàng)建特殊矩陣lMATLAB7.0還提供了若干特殊矩陣的生成函數(shù),在調(diào)用函數(shù)時(shí),用戶根據(jù)需要

3、設(shè)置參數(shù),就可以方便地得到需要的矩陣,常用的特殊矩陣函數(shù)列表如下。MATLAB特殊矩陣創(chuàng)建函數(shù)函 數(shù)生成矩陣形式ones全1元素矩陣zeros全0元素矩陣eye單位矩陣,即主對(duì)角線元素為1,其余元素全為0rand均勻分布隨機(jī)矩陣randn正態(tài)分布隨機(jī)矩陣magic魔術(shù)矩陣diag對(duì)角矩陣compan伴隨矩陣gallery測(cè)試矩陣hadamardHadamard矩陣hilbHilbert矩陣invhilbHilbert矩陣轉(zhuǎn)置rosser經(jīng)典對(duì)稱特征值測(cè)試矩陣toeplitzToeplitz矩陣pascalPascal矩陣vanderVandermonde矩陣wilkinsonWilkinson

4、特征值測(cè)試矩陣技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.2 拼接矩陣l矩陣的拼接是指兩個(gè)或者兩個(gè)以上的單個(gè)矩陣,按一定的方向進(jìn)行連接,生成新的矩陣。從本質(zhì)上說,矩陣的拼接就是一種創(chuàng)建矩陣的特殊方法,區(qū)別在于基礎(chǔ)元素是原始矩陣,目標(biāo)是新的合并矩陣。本節(jié)主要介紹矩陣拼接的兩種方法,一是利用矩陣生成符,另一種是調(diào)用矩陣拼接函數(shù)。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.2.1 基本拼接l通常,矩陣的拼接有按照水平方向拼接和按照垂直方向拼接兩種。例如,對(duì)矩陣A和B進(jìn)行拼接,拼接表達(dá)式分別如下所示。l水平方向拼接:C=A B或C=A,B。l垂直方向拼接:C=A;B。l【例4.3】 把

5、的魔術(shù)矩陣和的單位矩陣在水平方向上拼接成為一個(gè)的新矩陣,垂直方向上拼接成為一個(gè)的新矩陣。本例目的:熟悉矩陣的拼接方法和不同方向上拼接的區(qū)別。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.2.2 拼接函數(shù)l除了使用矩陣拼接符,還可以使用MATLAB7.0提供的矩陣拼接函數(shù)執(zhí)行,具體的函數(shù)和功能列表如表所示。前三個(gè)函數(shù)的對(duì)應(yīng)功能已經(jīng)在前面的例子中做過示范,這里不再贅述。下面主要針對(duì)后兩個(gè)指令舉例說明其用法。MATLAB的矩陣拼接函數(shù)0函 數(shù)功 能cat指定維拼接horzcat水平方向拼接vertcat垂直方向拼接repmat通過對(duì)現(xiàn)有矩陣復(fù)制和粘貼操作生成新矩陣blkdiag現(xiàn)有矩陣構(gòu)造對(duì)角

6、矩陣技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.3 改變矩陣尺寸l矩陣的尺寸又稱矩陣的大小。在MATLAB7.0中,用戶可以方便地對(duì)矩陣的尺寸進(jìn)行擴(kuò)大和縮小,擴(kuò)大矩陣的主要方式是拼接和添加元素,縮小矩陣的方式是刪除矩陣中的某行或某列元素。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.3.1 擴(kuò)大矩陣的尺寸l在MATLAB7.0中,用戶可以通過兩種方式擴(kuò)大矩陣的尺寸,一是進(jìn)行矩陣拼接,二是在矩陣的尺寸之外添加元素。前者本書4.2節(jié)已經(jīng)作了介紹,本小節(jié)主要介紹后一種方法。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.3.2 縮小矩陣的尺寸l如果要讓矩陣“變小”,也就是刪除矩陣的

7、某行或某列,只要把目標(biāo)行或列賦予一個(gè)空矩陣即可。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.4 改變矩陣形狀l矩陣的形狀和矩陣的尺寸一樣是可以改變的,MATLAB為用戶提供了若干函數(shù),用來(lái)改變矩陣的形狀,函數(shù)名稱及功能如表所示。MATLAB矩陣形狀操作函數(shù)函 數(shù)功 能reshape重新排列矩陣rot90矩陣逆時(shí)針旋轉(zhuǎn)90fliplr垂直方向?yàn)檩S翻轉(zhuǎn)矩陣flipud水平方向?yàn)檩S翻轉(zhuǎn)矩陣flipdim指定方向?yàn)檩S翻轉(zhuǎn)矩陣技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.5 向量、標(biāo)量與空矩陣lMATLAB中的矩陣多數(shù)是以矩形的形式顯示,但有時(shí)常出現(xiàn)特殊形式的矩陣,即由于和的取值特殊,矩陣

8、常常表現(xiàn)出非矩形的特征。本節(jié)主要介紹三種特殊的矩陣結(jié)構(gòu):向量(vector)、標(biāo)量(scalar)和空矩陣(empty matrix)。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.5.1 向量l向量是行數(shù)或列數(shù)為1的特殊矩陣,其一般顯示為1n或n1的數(shù)列。用戶在構(gòu)造新矩陣,以及對(duì)矩陣進(jìn)行訪問、修改等操作時(shí),常用到向量數(shù)列。MATLAB提供了生成等差向量數(shù)列的符號(hào)冒號(hào),例如,(p:q)生成從p到q,差為1的遞增向量數(shù)列。例如,創(chuàng)建101的等差遞減數(shù)列,在命令窗口輸入代碼及執(zhí)行結(jié)果如下。l v=(10:-1:1)lv =l 10 9 8 7 6 5 4 3 2 1 技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力

9、專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.5.2 標(biāo)量l標(biāo)量是行列數(shù)都是1的特殊矩陣,任意以的矩陣形式表示的單個(gè)實(shí)數(shù)或復(fù)數(shù),稱之為標(biāo)量。如下的實(shí)數(shù)x就是一個(gè)標(biāo)量。實(shí)數(shù)5的維數(shù)為2,即行和列;且各維數(shù)值都為1。l x=5lx =l 5l ndims(x) % 查看x的維數(shù)lans =l 2l size(x) %查看行、列維的數(shù)值lans =l 1 1 技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.5.3 空矩陣lMATLAB中為了表示和操作的方便,引入了“空矩陣”的概念,其含義是至少一維的數(shù)值為0的矩陣。空矩陣可以是、和(n為正整數(shù))??站仃嚥皇侨?矩陣,讀者可以通過如下指令建立一個(gè)空矩陣a,再利用wh

10、os指令查看其名稱、大小和數(shù)據(jù)類型。l ala =l l whosl Name Size Bytes Classl a 0 x0 0 double array 技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.6 矩陣尋訪l矩陣作為存儲(chǔ)各種數(shù)據(jù)的基本單位,是若干相關(guān)元素的有序集合,為方便用戶訪問矩陣中的一個(gè)或者多個(gè)元素,MATLAB引入了元素下標(biāo)的概念。本節(jié)主要介紹不同的元素下標(biāo)表示方法以及如何利用矩陣的下標(biāo)訪問矩陣中的單元素和多元素。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.6.1 下標(biāo)轉(zhuǎn)換lMATLAB7.0中,矩陣的下標(biāo)表示與常用的數(shù)學(xué)習(xí)慣相同,使用“雙下標(biāo)”(Row-Col

11、umn Index),即分別表示行和列,矩陣中的元素都有對(duì)應(yīng)的“第幾行,第幾列”。這種表示方法簡(jiǎn)單直觀,幾何概念比較清晰。如下代碼所示,矩陣m中的元素8、5、2分別可以表示為技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.6.2 訪問單元素l訪問一個(gè)矩陣中的單個(gè)元素,必須指定兩個(gè)參數(shù),即其所在行數(shù)和列數(shù)。例如,訪問矩陣A中的任何一個(gè)單元素,代碼如下所示,row和column分別代表行數(shù)和列數(shù)。lA(row,column)技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.6.3 訪問多元素l訪問矩陣的多元素,包括訪問某一行或某一列的若干元素,訪問整行、整列元素,訪問若干行或若干列的元素以及

12、訪問矩陣所有元素等。首先,介紹在訪問矩陣多元素時(shí)常用的一個(gè)符號(hào)冒號(hào)。本書之前的章節(jié)介紹過,冒號(hào)可以表示等差步進(jìn),從而幫助生成向量矩陣。其實(shí)冒號(hào)還有另外一個(gè)重要的功能,即表示矩陣中的多個(gè)元素。例如A(1:k,n)表示矩陣A中第n列的1k的元素,B(m,:)表示矩陣B中第m行的所有元素,在對(duì)矩陣中某部分元素進(jìn)行訪問和賦值時(shí),此種表示方法顯得十分方便。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.7 獲取矩陣信息l矩陣的信息主要包括以下三點(diǎn):l矩陣元素的數(shù)據(jù)類型;l矩陣的數(shù)據(jù)結(jié)構(gòu);l矩陣的大小等。l本節(jié)重點(diǎn)介紹通過調(diào)用函數(shù)來(lái)獲取矩陣各種信息的方法。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出

13、版4.7.1 獲取矩陣元素的數(shù)據(jù)類型lMATLAB提供了獲得矩陣元素?cái)?shù)據(jù)類型的若干函數(shù),如表所示。MATLAB矩陣元素?cái)?shù)據(jù)類型判斷函數(shù)函 數(shù)功 能isa判斷輸入數(shù)據(jù)是否為某中指定數(shù)據(jù)類型iscell判斷輸入數(shù)據(jù)是否為元胞數(shù)組類型iscellstr判斷輸入數(shù)據(jù)是否為元胞字符串類型ischar判斷輸入數(shù)據(jù)是否為字符類型isfloat判斷輸入數(shù)據(jù)是否為浮點(diǎn)數(shù)類型isinteger判斷輸入數(shù)據(jù)是否為整數(shù)類型islogical判斷輸入數(shù)據(jù)是否為邏輯類型isnumeric判斷輸入數(shù)據(jù)是否為數(shù)值類型isreal判斷輸入數(shù)據(jù)是否為實(shí)數(shù)類型isstruct判斷輸入數(shù)據(jù)是否為結(jié)構(gòu)體類型技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)

14、創(chuàng)新出版專業(yè)創(chuàng)新出版4.7.2 獲取矩陣的數(shù)據(jù)結(jié)構(gòu)lMATLAB不但提供了判斷矩陣內(nèi)元素?cái)?shù)據(jù)類型的函數(shù),還提供了判斷矩陣本身數(shù)據(jù)結(jié)構(gòu)的若干函數(shù),如表所示。MATLAB矩陣元素?cái)?shù)據(jù)結(jié)構(gòu)判斷函數(shù)函 數(shù)功 能isempty判斷矩陣是否為空矩陣isscalar判斷矩陣是否為標(biāo)量isvector判斷矩陣是否為向量issparse判斷矩陣是否為稀疏矩陣技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.7.3 獲取矩陣的尺寸信息l矩陣的尺寸信息,包括矩陣最長(zhǎng)維的大小、矩陣維數(shù)、元素個(gè)數(shù)和指定維的長(zhǎng)度等。MATLAB提供給用戶4個(gè)函數(shù)來(lái)獲取以上信息,矩陣尺寸信息查詢函數(shù)函 數(shù)功 能length得到矩陣最長(zhǎng)維

15、長(zhǎng)度ndims得到矩陣的維數(shù)numel得到矩陣的元素個(gè)數(shù)size得到矩陣指定維的長(zhǎng)度技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.8 高維數(shù)組l在MATLAB中,維數(shù)超過二維的數(shù)組稱為高維數(shù)組。之前的章節(jié)介紹過,矩陣可以理解成二維的數(shù)組,本書所討論的數(shù)組大多數(shù)情況下都是二維的數(shù)組,即矩陣,對(duì)于矩陣,“行”和“列”分別是矩陣的第一維和第二維;而對(duì)于高維數(shù)組,只有第三維具有統(tǒng)一的名稱,稱為“頁(yè)”(page),更高維稱呼至今仍未統(tǒng)一。在進(jìn)行高維數(shù)組操作的時(shí)候,首先要有一定的幾何空間意識(shí),如果說對(duì)于二維的矩陣的處理是著眼于平面“矩形”的話,那么對(duì)于三維數(shù)組的理解就要面對(duì)一個(gè)立體的、截面是矩形的“

16、長(zhǎng)方體”。l盡管高維數(shù)組可以是任意維數(shù),但為了方便講解的直觀和讀者理解的方便,本節(jié)主要以三維數(shù)組為例,一個(gè)三維的數(shù)組由行、列和頁(yè)三維組成,每一頁(yè)都是一個(gè)由行和列來(lái)構(gòu)成的二維的矩陣,正如二維數(shù)組所有的列必須包含相同的行一樣,三維數(shù)組的所有的頁(yè)也要包含相同的行和列,且所有矩陣滿足的操作都可以運(yùn)用于高維數(shù)組上。本節(jié)主要介紹高維數(shù)組的生成和基本操作。技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.8.1 高維數(shù)組的創(chuàng)建l創(chuàng)建高維數(shù)組的常用方法包括以下兩種。l調(diào)用函數(shù)直接創(chuàng)建標(biāo)準(zhǔn)高維數(shù)組。l下標(biāo)直接索引賦值生成高維數(shù)組,即給數(shù)組中某一位置的元素或者某些位置的元素賦值,以此生成高維數(shù)組。技術(shù)凝聚實(shí)力技

17、術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.8.2 訪問高維數(shù)組的信息l對(duì)于高維數(shù)組,同樣可以運(yùn)用適用于一般矩陣的信息獲取函數(shù)(參見4.7)來(lái)訪問其信息。例如,以上一小節(jié)中調(diào)用reshape函數(shù)建立的新數(shù)組為例,訪問其維數(shù)、大小,最長(zhǎng)維大小和元素個(gè)數(shù)等信息,具體代碼如下。l ndims(P) % 查詢數(shù)組的維度lans =l 3l size(P) % 查詢數(shù)組的大小lans =l 2 2 4l length(P) % 查詢數(shù)組的最長(zhǎng)維大小lans =l 4l numel(P) % 查詢數(shù)組的元素個(gè)數(shù)lans =l 16 技術(shù)凝聚實(shí)力技術(shù)凝聚實(shí)力專業(yè)創(chuàng)新出版專業(yè)創(chuàng)新出版4.8.3 高維數(shù)組操作函數(shù)lMATLAB提供了若干

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論