第2章_Matlab運(yùn)算基礎(chǔ)_part1_第1頁(yè)
第2章_Matlab運(yùn)算基礎(chǔ)_part1_第2頁(yè)
第2章_Matlab運(yùn)算基礎(chǔ)_part1_第3頁(yè)
第2章_Matlab運(yùn)算基礎(chǔ)_part1_第4頁(yè)
第2章_Matlab運(yùn)算基礎(chǔ)_part1_第5頁(yè)
已閱讀5頁(yè),還剩114頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章 Matlab運(yùn)算基礎(chǔ)主要內(nèi)容(1 1)變量的定義及賦值、特殊變量、內(nèi)存變)變量的定義及賦值、特殊變量、內(nèi)存變量的管理;量的管理;(2 2)矩陣及其基本運(yùn)算:包括矩陣的創(chuàng)建、)矩陣及其基本運(yùn)算:包括矩陣的創(chuàng)建、矩陣元素的引用、子矩陣、矩陣的合并、矩陣元素的引用、子矩陣、矩陣的合并、矩陣的基本運(yùn)算、基本的算術(shù)函數(shù)等;矩陣的基本運(yùn)算、基本的算術(shù)函數(shù)等;(3 3)數(shù)值數(shù)組、字符串?dāng)?shù)組、元胞數(shù)組和構(gòu))數(shù)值數(shù)組、字符串?dāng)?shù)組、元胞數(shù)組和構(gòu)架數(shù)組等數(shù)據(jù)類型架數(shù)組等數(shù)據(jù)類型2.1 概述2.1.1 數(shù)據(jù)術(shù)語(yǔ)1 1)矩陣:矩陣:由由m mn n個(gè)數(shù)組成的排成個(gè)數(shù)組成的排成m m行行n n列的一個(gè)矩形列的一個(gè)

2、矩形的數(shù)表。數(shù)表中第的數(shù)表。數(shù)表中第i i(1(1i im)m)行第行第j(1j(1j jn)n)列的列的數(shù)據(jù)稱為矩陣元素?cái)?shù)據(jù)稱為矩陣元素 。0 00 0的的矩陣稱為空矩陣矩陣稱為空矩陣()()2 2)標(biāo)量標(biāo)量 :1 11 1的矩陣,即為只含一個(gè)數(shù)的矩陣。的矩陣,即為只含一個(gè)數(shù)的矩陣。3 3)向量:向量:1 1n n或或n n1 1的矩陣,即只有一行的或者一的矩陣,即只有一行的或者一列的矩陣。只有一行的矩陣稱為行向量,只有一列列的矩陣。只有一行的矩陣稱為行向量,只有一列的矩陣稱為列向量。的矩陣稱為列向量。數(shù)表中第數(shù)表中第i i(1in(1in) )個(gè)數(shù)據(jù)稱個(gè)數(shù)據(jù)稱為為向量向量元素元素。4 4)

3、數(shù)組:數(shù)組:矩陣的延伸,一般指多維數(shù)組,其中標(biāo)量、矩陣的延伸,一般指多維數(shù)組,其中標(biāo)量、向量和矩陣都是數(shù)組的特例。向量和矩陣都是數(shù)組的特例。2.1.2 數(shù)據(jù)類型數(shù)據(jù)類型包括數(shù)據(jù)類型包括數(shù)值型、字符串型、元胞型、構(gòu)架型數(shù)值型、字符串型、元胞型、構(gòu)架型等。數(shù)值型有單精度型、雙精度型和整數(shù)型。整數(shù)等。數(shù)值型有單精度型、雙精度型和整數(shù)型。整數(shù)型有型有uint8,uint16,uint32uint8,uint16,uint32和和uint64uint64等無(wú)符號(hào)型和等無(wú)符號(hào)型和int8int8,int16int16,int32int32和和int64int64等符號(hào)型整數(shù)。等符號(hào)型整數(shù)。數(shù)值型數(shù)據(jù)可以用

4、帶小數(shù)點(diǎn)的形式和科學(xué)計(jì)數(shù)法表數(shù)值型數(shù)據(jù)可以用帶小數(shù)點(diǎn)的形式和科學(xué)計(jì)數(shù)法表示,數(shù)值的表示范圍是示,數(shù)值的表示范圍是1 10-3090-3091010+309+309。-20-20、1.251.25、2.88e-56(2.88e-56(表示表示2.882.881010-56-56) )、7.68e204(7.68e204(表示表示7.687.681010204204) ) 都是合法的數(shù)據(jù)表示。都是合法的數(shù)據(jù)表示。一般在計(jì)算時(shí)一般在計(jì)算時(shí)采用雙精度型,在輸出時(shí)有多種數(shù)值顯示采用雙精度型,在輸出時(shí)有多種數(shù)值顯示格式可供選擇。格式可供選擇。 數(shù)值顯示的格式可通過(guò)format format 命令設(shè)置常用的

5、格式有:format shortformat short 默認(rèn)設(shè)置,以默認(rèn)設(shè)置,以5 5位數(shù)字形式輸出位數(shù)字形式輸出format longformat long 以以1515位十進(jìn)制數(shù)形式輸出位十進(jìn)制數(shù)形式輸出format short eformat short e 以以5 5位十進(jìn)制數(shù)加指數(shù)形式輸出位十進(jìn)制數(shù)加指數(shù)形式輸出format long eformat long e 以以1616位十進(jìn)制數(shù)加指數(shù)形式輸出位十進(jìn)制數(shù)加指數(shù)形式輸出format short gformat short g 從從formatformat short short和和format format shortshor

6、t e e 中自動(dòng)選擇中自動(dòng)選擇最佳輸出形式最佳輸出形式format hex format hex 以以1616位十六進(jìn)制數(shù)形式輸出位十六進(jìn)制數(shù)形式輸出format rat format rat 以近似分?jǐn)?shù)形式輸出以近似分?jǐn)?shù)形式輸出2.2 變量2.2.1 變量的命名變量的命名規(guī)則為:1 變量名必須以字母開(kāi)頭,變量名的組成可以是任意字母、數(shù)字或者下劃線,但不能含有空格和標(biāo)點(diǎn)符號(hào)。2 關(guān)鍵字和函數(shù)名不能作為變量名。3 變量名不能超過(guò)63個(gè)字符。4 變量名區(qū)分字母的大小寫,即大小寫敏感。 2.2.2 變量的賦值MATLAB賦值語(yǔ)句有兩種格式:(1) 變量=表達(dá)式 (2) 表達(dá)式 %將表達(dá)式的值賦給預(yù)

7、設(shè)變量ans一般地,運(yùn)算結(jié)果在命令窗口中顯示出來(lái)。如果在語(yǔ)句的最后加分號(hào),那么,MATLAB僅僅執(zhí)行賦值操作,不再顯示運(yùn)算的結(jié)果。如果表達(dá)式太復(fù)雜一行寫不下,可以加上續(xù)行符()并按回車鍵,然后再下一行接著寫。在MATLAB語(yǔ)句后面可以加上注釋,注釋以%開(kāi)頭,后面是注釋的內(nèi)容。 例2-12-1 在命令窗口輸入下述語(yǔ)句,并按回車鍵執(zhí)行,分別給變量a a、b b、c c賦值:a=1 %a為標(biāo)量為標(biāo)量b=0 1 %b為行向量為行向量c=1 2;3 4;5 6 %c為矩陣即二維數(shù)組為矩陣即二維數(shù)組2.2.3 特殊變量(預(yù)定義變量)epseps MATLAB MATLAB定義的正的極小值定義的正的極小值2

8、.2204e-162.2204e-16realmaxrealmax 最大的正實(shí)數(shù)最大的正實(shí)數(shù)1.7977e+3081.7977e+308realminrealmin 最小的正實(shí)數(shù)最小的正實(shí)數(shù)2.2251e-3082.2251e-308pi pi 內(nèi)建的內(nèi)建的值值i i, j, j 虛數(shù)單位虛數(shù)單位i i=j=j=infinf NaNNaN 無(wú)法定義一個(gè)數(shù)目無(wú)法定義一個(gè)數(shù)目 narginnargin 函數(shù)輸入?yún)?shù)個(gè)數(shù)函數(shù)輸入?yún)?shù)個(gè)數(shù)nargoutnargout 函數(shù)輸出參數(shù)個(gè)數(shù)函數(shù)輸出參數(shù)個(gè)數(shù)flops flops 浮點(diǎn)運(yùn)算次數(shù)浮點(diǎn)運(yùn)算次數(shù)12.2.4 內(nèi)存變量的管理1. 內(nèi)存變量的顯示與刪除1

9、 1)whowho 用于顯示在用于顯示在MATLABMATLAB工作空間中已工作空間中已 經(jīng)駐留的變量名清單。經(jīng)駐留的變量名清單。2 2)whoswhos 在給出變量名的同時(shí),還給出它們?cè)诮o出變量名的同時(shí),還給出它們 的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等 信息。信息。3 3)clearclear 刪除刪除MATLABMATLAB工作空間中的變量。注工作空間中的變量。注 意,特殊變量不能被刪除意,特殊變量不能被刪除。 例2-22-2 查詢例2-12-1中語(yǔ)句執(zhí)行后工作空間中的變量情況。Name Size Bytes Class a 1x1 8 double array b

10、 1x2 16 double array c 3x2 48 double arrayGrand total is 10 elements using 72 bytes 2. 工作空間瀏覽器工作空間瀏覽器窗口用于工作空間瀏覽器窗口用于顯示所有顯示所有MATLABMATLAB工作空工作空間中的變量名、數(shù)據(jù)結(jié)構(gòu)、類型、大小和字節(jié)數(shù),間中的變量名、數(shù)據(jù)結(jié)構(gòu)、類型、大小和字節(jié)數(shù),也可以對(duì)變量進(jìn)行觀察、編輯、提取和保存。也可以對(duì)變量進(jìn)行觀察、編輯、提取和保存。例例2.12.1 語(yǔ)句執(zhí)行后工作空間瀏覽器窗口如圖語(yǔ)句執(zhí)行后工作空間瀏覽器窗口如圖2-12-13. 內(nèi)存變量文件利用利用MATMAT文件可以把文件可

11、以把MATLABMATLAB工作空間中的一些有用工作空間中的一些有用變量長(zhǎng)久地保留下來(lái)。變量長(zhǎng)久地保留下來(lái)。MATMAT文件的生成和調(diào)入由文件的生成和調(diào)入由savesave和和loadload命令來(lái)完成命令來(lái)完成(1)save的格式: save 文件名 變量名表 -append -ASCII功能:把工作空間中的變量保存到MAT文件中。-append表示添加方式; -ASCII表示數(shù)據(jù)格式為ASCII碼形式,默認(rèn)為二進(jìn)制格式。 例如: save mydata1 save mydata2 a b save mydata2 c -append (2) load的格式: load 文件名 變量名表 -

12、ASCII功能:將MAT文件中保存的變量加載到Matlab工作空間中。參數(shù)含義同save。例如: load mydata1 load mydata1 a b2.3 數(shù)值數(shù)組 2.3.1 數(shù)值數(shù)組的建立數(shù)值數(shù)組的建立1 1 直接輸入法直接輸入法將矩陣的元素用方括號(hào)括起來(lái),按矩陣行的順序輸入各元素;同一行的元素間用逗號(hào)或空格隔開(kāi),同一行的元素間用逗號(hào)或空格隔開(kāi),行與行之間用分號(hào)或回車鍵隔開(kāi)行與行之間用分號(hào)或回車鍵隔開(kāi)。元素可以是數(shù)值或表達(dá)式元素,表達(dá)式可以由數(shù)元素可以是數(shù)值或表達(dá)式元素,表達(dá)式可以由數(shù)字、變量、運(yùn)算符和函數(shù)等組成字、變量、運(yùn)算符和函數(shù)等組成。例2-4 在命令窗口輸入A=1,2,3;

13、 4 5 6;7 8 9 %注意:若在賦值語(yǔ)句后加分號(hào),則只執(zhí)行賦值操作而不顯示結(jié)果。例2-5x=-1.3 1+2+3 sqrt(5)注意:數(shù)組元素也可以是復(fù)數(shù)。例2-6c=1+2i, 2+3i; 2-1i, 3-2i2. 等間隔向量的生成 (1)冒號(hào)表達(dá)式格式1 x1:dx:x2格式2 x1:x2說(shuō)明: 初值x1、增量dx和終值x2分別表示開(kāi)始值、步長(zhǎng)和結(jié)束值。增量可為負(fù)值, 省略時(shí)則默認(rèn)增量為1;當(dāng)增量省略或增量0而初值終值時(shí)為空向量,當(dāng)增量0而初值終值時(shí)也為空向量。例2-7t1=0:0.02:1t2=5:-1:2t3=2:-1:3 %結(jié)果t3為空矩陣t4=1:2:5; 1:3:7(2)

14、使用linspace和logspace函數(shù)生成向量linspace函數(shù)的格式: linspace(a,b,n)功能:生成從a到b之間線性等分的n個(gè)元素的行向量(n的默認(rèn)中為100) 。logspace函數(shù)的格式: logspace(a,b,n)功能:生成從10a到10b之間按對(duì)數(shù)等分的n個(gè)元素的行向量(n的默認(rèn)中為50) 。 例2-8 2-8 用linspacelinspace和logspacelogspace函數(shù)生成向量t1=linspace(0,2*pi,5)x=linspace(1,8,1)y=logspace(0,2,3)3. 利用Matlab內(nèi)部函數(shù)產(chǎn)生矩陣函數(shù)庫(kù): elmat幾個(gè)產(chǎn)

15、生特殊矩陣的函數(shù):zeros、ones、 eye、rand、randn。注:Matlab 7.7.0版本中,rand和randn在函數(shù)庫(kù)randfun中。這幾個(gè)函數(shù)的調(diào)用格式相似,下面以產(chǎn)生零矩陣的zeros函數(shù)為例進(jìn)行說(shuō)明。其調(diào)用格式是: zeros(n) 產(chǎn)生nn零矩陣 zeros(m,n) 產(chǎn)生mn零矩陣。 zeros(size(A) 產(chǎn)生與矩陣A同樣大小的零矩陣?yán)? zeros, ones, eye的用法a1=zeros(2)a2=zeros(2,3)b1=eye(3)b2=eye(3,4)c1=ones(3)c2=ones(3,4)c3=ones(size(a2)函數(shù)rand用于產(chǎn)生

16、0, 1之間均勻分布的隨機(jī)數(shù); randn用于產(chǎn)生服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)(均值為零,標(biāo)準(zhǔn)差為1)例2 r1=rand %產(chǎn)生一個(gè)0, 1之間均勻分布的隨機(jī)數(shù)r2=rand(3) %產(chǎn)生元素在0, 1之間均勻分布的3x3的隨機(jī)數(shù)矩陣r3=rand(3,4) % 產(chǎn)生3x4的0, 1之間均勻分布的隨機(jī)數(shù)矩陣?yán)?產(chǎn)生-5,5之間均勻分布的3x4的隨機(jī)矩陣r4=10*rand(3,4)-5 或r4=5-10*rand(3,4)例4 產(chǎn)生1-10之間均勻分布的整數(shù)。r=round(rand*9+1)例5產(chǎn)生3x4階均值為3,方差為5的正態(tài)分布的隨機(jī)矩陣r5=randn(3,4)*sqrt(5)+3另外

17、幾個(gè)創(chuàng)建特殊矩陣的函數(shù):函數(shù)diag格式:X=diag(v)功能:1)若v為向量,則產(chǎn)生以v中元素為主對(duì)角線元素的對(duì)角矩陣。2)若v為矩陣,則提取v的主對(duì)角線元素(返回一個(gè)向量)。格式:X=diag(v,k)功能:1)若v為向量,則產(chǎn)生上的元素為v中元素的對(duì)角矩陣。2)若v為矩陣,則提取v的上的元素(返回一個(gè)向量)。例6 diag函數(shù)的使用v=2 -10 8A=diag(v)A1=diag(v,1)A2=diag(v,-1)X=rand(3)d=diag(X)d1=diag(X,1)d1=diag(X,-1)利用diag函數(shù)可以得到復(fù)雜的矩陣,例如:v=1 2 3 4; v1=7 8 9;c=

18、diag(v)+diag(v1,1)例7 產(chǎn)生主對(duì)角線元素為4,相鄰兩條次對(duì)角線元素均為1,其它元素為0的n階方陣(n=10)。n=10; v=4*ones(1,n); v1=ones(1,n-1); A=diag(v)+diag(v1,1)+diag(v1,-1)函數(shù)blkdiag格式:A=blkdiag(A1,A2,An)功能:生成如下形式的分塊對(duì)角矩陣 A1 0 0; 0 A2 0; ; 0 0 An函數(shù)triu格式:A=triu(X) 功能:提取矩陣X的主對(duì)角線及以上的元素,生成上三角矩陣A。格式:A=triu(X,k) 功能:提取矩陣X的第k條對(duì)角線及以上的元素,生成上三角矩陣A。函

19、數(shù)tril 格式:A=tril(X) 功能:提取矩陣X的主對(duì)角線及以下的元素,生成下三角矩陣A。格式:A=tril(X,k) 功能:提取矩陣X的第k條對(duì)角線及以下的元素,生成下三角矩陣A。函數(shù)magic用于生成模方矩陣。例如:X=magic(7);U=triu(X)U1=triu(X,1)U2=triu(X,-1)L=tril(X)L1=tril(X,2)L2=tril(X,-2)生成用于專門學(xué)科的一些特殊矩陣的函數(shù)1) vander生成范德蒙矩陣2) hilb 生成希爾波特矩陣3) invhilb 生成希爾波特矩陣的逆4)toeplitz 生成托普利茲矩陣5)compan 生成伴隨矩陣6)p

20、ascal 生成帕斯卡矩陣7)hadamard 生成哈達(dá)瑪矩陣數(shù)組的創(chuàng)建(cont.)4. 通過(guò)load命令或選擇FileImport Data命令加載.mat文件來(lái)創(chuàng)建矩陣5. 在M文件中創(chuàng)建矩陣(在第3章介紹)。2.3.2 數(shù)組元素的標(biāo)識(shí)Matlab既允許對(duì)數(shù)組作為整體進(jìn)行賦值和操作,也允許對(duì)數(shù)組的單個(gè)元素進(jìn)行賦值和操作,還允許對(duì)矩陣的部分元素進(jìn)行賦值和操作。1. 向量元素的標(biāo)識(shí)設(shè)v 是向量,則v(i)表示向量v的第i個(gè)元素。注意:Matlab中數(shù)組下標(biāo)從1開(kāi)始。例如:x=1:2:9; x3=x(3);x5=x(end)x(3)=102. 矩陣元素的標(biāo)識(shí)(1) 全下標(biāo)方式:A(i,j)表示

21、矩陣A中位于第i行、第j列的元素。例如:設(shè)A=1,2;3,4;5,6a12=A(1,2); x=A(1,1)+A(1,2); A(1,2)=10A(3,3) %出錯(cuò):下標(biāo)越界A(2,4)=9 %擴(kuò)大數(shù)組,然后再賦值(2) 單下標(biāo)方式也可以根據(jù)矩陣元素在內(nèi)存中的存儲(chǔ)次序(序號(hào))來(lái)引用矩陣元素。注意:在Matlab中矩陣的書寫按行的順序書寫,但在內(nèi)存中,按照列的順序存儲(chǔ)!例如:A=1,2,3;4,5,6;7,8,9在內(nèi)存中的順序?yàn)?,4,7,2,5,8,3,6,9而A(:)表示由A中所有元素按照在內(nèi)存中的存儲(chǔ)次序生成的列向量。因此,A(1)是1, A(2)是4,A(3)是7,A(4)是2,依此類推

22、,A(9)是9。一般地,對(duì)mxn的矩陣A,a(i,j)對(duì)應(yīng)的單下標(biāo)(也成為序號(hào),Index)為ind=m*(j-1)+I(3) 邏輯下標(biāo)方式(在第3章介紹)2.3.3 子數(shù)組子數(shù)組是從數(shù)組中取出一部分元素所構(gòu)成的數(shù)組。子數(shù)組是從數(shù)組中取出一部分元素所構(gòu)成的數(shù)組。通常可用全下標(biāo)、單下標(biāo)和邏輯下標(biāo)取子數(shù)組。通??捎萌聵?biāo)、單下標(biāo)和邏輯下標(biāo)取子數(shù)組。1) A1) A為向量,例如:為向量,例如:A=2:2:20;A=2:2:20;A(1:3), A(4:end)A(1:3), A(4:end)A(2:2:10)A(2:2:10)A(3 4 5),A(5 4 3),A(10:-1:1)A(3 4 5),

23、A(5 4 3),A(10:-1:1)A(1 1 1)A(1 1 1)2) A為矩陣,例如:在命令窗口輸入以下語(yǔ)句觀察執(zhí)行結(jié)果A=1 2 3 4;5 6 7 8;9 10 11 12;A(1,:) %表示提取A的第1 行A(:,end) %表示提取A的最后1 列A(1:2:4,:) %同 A(1 3,:) 表示提取A的第1,3 行A(3 1,: ) %表示提取A的第3行和第1行(行的順序和A(1 3,:)不同A(3:-1:1,:) % 相當(dāng)于flipud(A)A(1 1 1,:) A(1:3 1:3, :) A(:,2:2:end) % 同A(:,2 4)表示提取A的第2,4列A(:,4 2)

24、 %表示提取A的第4 列和第2列(列的順序和A(:,2 4)不同)A(1 3,2 4)A(1 2,2 3 4)A(1 2,2 3 1)對(duì)于矩陣,也可以利用單下標(biāo)(序號(hào))來(lái)定義子矩陣(結(jié)果為向量,即一維數(shù)組),例如:A=1 2 3 4;5 6 7 8;9 10 11 12A(1:6) %為行向量S=1 4 7 10A(S) %為行向量,同A(1 4 7 10)A(:) %為列向量 2.3.4 數(shù)組元素的賦值1. 1. 全元素方式全元素方式格式: a(:)=b 功能:給矩陣a的所有元素賦值。1)當(dāng)b為標(biāo)量時(shí),將矩陣a的所有元素賦值為b;2) 當(dāng)b不是標(biāo)量時(shí),要求數(shù)組b的元素個(gè)數(shù)必須等于矩陣a的元素

25、個(gè)數(shù),但行列數(shù)可以不相等。例如:A=zeros(3,4);A(:)=2; %將A的所有元素賦值為2%注意: 若寫成A=2則含義不同,賦值后A成為一個(gè)標(biāo)量A(:)=2*ones(3,4) %結(jié)果同上A(:)=2*ones(1,12) %結(jié)果同上b=1:12;A(:)=b %注意: 如果寫成A=b,則含義不同,賦值后A成為一個(gè)行向量!2. 子數(shù)組方式(部分元素的賦值)1)單下標(biāo)方式:格式:A(Indexes)=B功能:給矩陣A的部分元素賦值,其中,Indexes為標(biāo)量或向量(用于指定待賦值元素的序號(hào))。注意:當(dāng)A為矩陣時(shí),其單下標(biāo)(序號(hào))不能越界。當(dāng)B為標(biāo)量時(shí),表示將A的指定元素均賦值為B; 當(dāng)B

26、不為標(biāo)量時(shí),要求B的元素個(gè)數(shù)必須等于A的待賦值的元素個(gè)數(shù)(但行列數(shù)可以不相等)。例1在命令窗口輸入以下命令,觀察執(zhí)行的結(jié)果1) a=zeros(3,4); a(1:6)=1; a(7:12)=7:12;2) A=zeros(2,4); A(:)=1:8; s=2 3 5; A(s)Sa=10 20 30; A(s)=Sa2)全下標(biāo)方式格式:A(Rows, Cols)=B功能:給矩陣A的部分元素賦值。其中, Rows和Cols 均為標(biāo)量或向量,分別指定待賦值元素所在的行和列。當(dāng)B為標(biāo)量時(shí),表示將A的指定元素均賦值為B; 當(dāng)B不為標(biāo)量時(shí),要求矩陣B的行、列數(shù)必須和左邊子矩陣的行、列數(shù)完全一致。例2

27、在命令窗口輸入以下命令,觀察執(zhí)行的結(jié)果a=zeros(3,4)a(1:2,1:2)=eye(2)a(1:2,3:4)=2a(4,5)=10 %執(zhí)行后a擴(kuò)為4行5列a(5,:)=-1 %增加第5行a(:,6)=-1 %增加第6列a(6,7,8,9,10)=ones(2,3) %執(zhí)行后a擴(kuò)為7行10列 說(shuō)明:在Matlab中,可以在事先未對(duì)向量或矩陣進(jìn)行定義、初始化或賦值的情況下直接對(duì)向量或矩陣元素賦值。例3在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果cleara(1)=1,a(2)=2,a(3)=3b(5:6)=2 3c(3,4,5,6,7)=ones(2,3)d(:,2)=1:6e(3,:)=1:6f

28、(1,:)=1,f(2,:)=2,f(3,:)=3矩陣的組合與擴(kuò)展例1在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果A=magic(3)B=A zeros(size(A) ; ones(size(A) A注:將幾個(gè)矩陣放在內(nèi),水平連接用空格或逗號(hào)隔開(kāi),A B或A,B也可以寫成horzcat(A,B);垂直連接用分號(hào)或回車鍵隔開(kāi),A ; B或AB也可以寫成vertcat(A,B)。例2在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果A=A=A;ones(1,3) %沿行的方向擴(kuò)展A=A;2*ones(1,3) %沿行的方向擴(kuò)展A=A;3*ones(1,3) %沿行的方向擴(kuò)展A=A eye(3) %沿列的方向擴(kuò)展 A=

29、A zeros(3) %沿列的方向擴(kuò)展B=1:9A(4,:)=B %通過(guò)賦值擴(kuò)展C=ones(4,2)A(:,10:11)=C %通過(guò)賦值擴(kuò)展通過(guò)矩陣重復(fù)平鋪產(chǎn)生大矩陣函數(shù)repmat格式:repmat(A, row,col) 或repmat(A, row,col)功能:將矩陣A沿行和列的方向分別重復(fù)row和 col次。說(shuō)明: repmat(A,2,3)和A A A; A A A相同。例 在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果a=repmat(5,2,3)b1=1:5b=repmat(b1,3,2)c1=eye(2)c=repmat(c1,2 3)矩陣的重組矩陣的重組是建立新矩陣的一種特殊方式。

30、函數(shù):reshape格式:B=reshape(A,m,n)或reshape(A,m,n)功能:返回由矩陣A的元素組成的mxn的矩陣B(注意:矩陣A不發(fā)生變化)注意:在MATLAB中,矩陣元素按列存儲(chǔ),即首先存儲(chǔ)矩陣的第1列元素,然后存儲(chǔ)第2列元素,一直到矩陣的最后一列元素。由reshape函數(shù)得到的新矩陣和原矩陣的元素個(gè)數(shù)、存儲(chǔ)順序、對(duì)應(yīng)元素的值都完全相同(邏輯結(jié)構(gòu)不同,但存儲(chǔ)結(jié)構(gòu)完全相同)。例:在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果a=1:12A1=reshape(a,2,6)A1(:)A2=reshape(a,3,4)A2(:)2.3.5 數(shù)組元素的刪除通過(guò)賦值為空(通過(guò)賦值為空(),可以實(shí)

31、現(xiàn)刪除若干行),可以實(shí)現(xiàn)刪除若干行元素、若干列元素和整個(gè)數(shù)組。元素、若干列元素和整個(gè)數(shù)組。例:例:A=1 2 3 4;5 6 7 8;9 10 11 12;A=1 2 3 4;5 6 7 8;9 10 11 12;A A=A zeros(3); ones(2,4) ones(2,3)=A zeros(3); ones(2,4) ones(2,3)刪除第刪除第4 4行和第行和第5 5行:行: A(4A(4,5,:)=5,:)=再刪除第再刪除第5-75-7列:列: A(A(:,5:7)=,5:7)=A(10:12)=A(10:12)=% %再刪除第再刪除第10-1210-12個(gè)元素,個(gè)元素,矩陣矩

32、陣A A變?yōu)樾邢蛄孔優(yōu)樾邢蛄緼= %A= %刪除刪除A A的所有元素,矩陣的所有元素,矩陣A A變?yōu)榭站仃囎優(yōu)榭站仃?注意區(qū)分空矩陣和零矩陣:注意區(qū)分空矩陣和零矩陣:空矩陣是空矩陣是0 00 0的數(shù)組,而零矩陣是元素為零的的數(shù)組,而零矩陣是元素為零的m mn n的的數(shù)組。數(shù)組。2.3.6 高維數(shù)組1. 三維數(shù)組的建立(1) “全下標(biāo)”元素賦值方式例1)clear; A(2,2,2)=1 %單元素賦值創(chuàng)建2x2x2數(shù)組A(3,3,3)=1 %賦值后,A擴(kuò)展為3x3x3的數(shù)組2)clear; A(2,5,:)=1:3 %子數(shù)組賦值創(chuàng)建2x5x3數(shù)組3) clear; b(:,:,1)=1 1;1

33、1 b(:,:,2)=2 2; 2 2 %也可以寫成b(:,:,2)=2, 結(jié)果相同 b(:,:,3)=3 3;3 3 %也可以寫成b(:,:,3)=3, 結(jié)果相同 三維數(shù)組的建立(cont.)(2) 對(duì)二維矩陣進(jìn)行擴(kuò)充得到三維矩陣?yán)齜=1 1;1 1b(:,:,2)=2 2; 2 2b(:,:,3)=3 3;3 3(3) 將若干個(gè)同樣大小的二維矩陣進(jìn)行組合得到三維矩陣。 elmat函數(shù)庫(kù)專門提供了將一系列數(shù)組沿著特定的維連成一個(gè)數(shù)組的函數(shù)cat。函數(shù)cat格式: cat(d, A1,A2,An)功能:將一系列數(shù)組A1,A2,An沿第d維連接成一個(gè)數(shù)組(對(duì)第d維進(jìn)行擴(kuò)展)。說(shuō)明:若A1,A2,

34、An 為矩陣,則cat(1,A1,A2,An)和A1;A2;An,即vertcat(A1,A2,An)相同; cat(2,A1,A2,An)和A1 A2 An即horzcat(A1,A2,An)相同;A=cat(3, ,A1,A2,An)則和“A(:,:,1)=A1; A(:,:,2)=A2; A(:,:,n)=An”相同例 在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果B1=ones(2,3)B2=repmat(2,2,3)B3=repmat(3,2,3)A1=cat(1,B1,B2,B3) %等價(jià)于A1=B1;B2;B3%即A1=vertcat(B1,B2,B3)A2=cat(2,B1,B2,B3)

35、 %等價(jià)于A2=B1,B2,B3%即A2=horzcat(B1,B2,B3)A3=cat(3,B1,B2,B3) 三維數(shù)組的建立(cont.)(4)利用函數(shù)zeros,ones,rand,randn等生成函數(shù)直接創(chuàng)建例如:a=zeros(2,3,4)(5) 通常,先用函數(shù)zeros定維、初始化,然后再對(duì)其元素進(jìn)行賦值。2. 多維數(shù)組的信息ndims(A) %返回矩陣A的維數(shù)n1,n2,nm=size(A) 或者 ns=size(A) %返回矩陣A各維的大小,其中nk或ns(k)是第k維的大小nk=size(A,k) %返回矩陣A第k維的大小numel(A) %返回矩陣A中元素的個(gè)數(shù)length

36、(V) %主要用于向量,給出向量V的長(zhǎng)度;若用于矩陣A, length(A)給出行數(shù)和列數(shù)中的較大者,即ength(A)=max(size(A)ndims, size, numel函數(shù)的使用舉例例 在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果X=1:10; ndims(X), size(X), length(X)Y=X;ndims(Y), size(Y), length(Y)A=zeros(3,5); ndims(A), ns=size(A)m n=size(A)n1=size(A,1),n2=size(A,2)B=rand(2,10,3); ndims(B) ns=size(B)m n p=size

37、(B)numel(B)length(B)2.4 稀疏數(shù)組2.4.1 數(shù)組元素的存儲(chǔ)在Matlab中,數(shù)組有兩種存儲(chǔ)方式:1)完全存儲(chǔ)方式將數(shù)組的所有元素按列存儲(chǔ)2)稀疏存儲(chǔ)方式僅存儲(chǔ)矩陣所有非零元素及其位置,即行號(hào)和列號(hào)。以稀疏存儲(chǔ)方式存儲(chǔ)的數(shù)組稱為稀疏數(shù)組。有兩方面的含義:1)數(shù)組的零元素較多;2)采用稀疏存儲(chǔ)方式。2.4.2 稀疏數(shù)組的建立函數(shù)庫(kù)sparfun中提供了一系列以不同方式建立稀疏矩陣的函數(shù)。稀疏矩陣建立后與普通的數(shù)組數(shù)組的使用方法類似。1. 轉(zhuǎn)換函數(shù)完全存儲(chǔ)方式和稀疏存儲(chǔ)方式可以相互轉(zhuǎn)換。將完全存儲(chǔ)方式轉(zhuǎn)化為稀疏存儲(chǔ)方式適用于含有大量零元素的矩陣,轉(zhuǎn)化函數(shù)為sparse。格式:

38、功能:將矩陣S轉(zhuǎn)化為稀疏存儲(chǔ)方式的矩陣。當(dāng)矩陣S是稀疏存儲(chǔ)方式時(shí),則相當(dāng)于A=Ssparse函數(shù)的其它調(diào)用格式格式:功能:生成一個(gè)mxn的所有元素均為0的稀疏矩陣。格式:功能:建立一個(gè)max(u)行、max(v)列并以S為稀疏元素的稀疏矩陣,其中,u,v,S是三個(gè)等長(zhǎng)的向量,是要建立的稀疏矩陣的非零元素,u(i),v(i)分別是S(i)的行和列下標(biāo)。將稀疏存儲(chǔ)方式的矩陣轉(zhuǎn)化為完全存儲(chǔ)方式的矩陣的轉(zhuǎn)換函數(shù)是full格式:功能:返回和稀疏存儲(chǔ)矩陣對(duì)應(yīng)的完全存儲(chǔ)矩陣。演示sparse和full的功能例2-28在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果u=1:4v=3:6S=0.1:0.1:0.4spa=s

39、parse(u,v,S)A=full(spa)2.生成函數(shù)為方便稀疏矩陣的使用,Matlab還提供了一些稀疏矩陣的生成函數(shù):spconvert、spdiags和speye等。spconvert函數(shù)格式:功能:創(chuàng)建由矩陣所描述的一個(gè)稀疏存儲(chǔ)矩陣。其中,為一個(gè)mx3或mx4的矩陣,其每一行表示一個(gè)非零元素(m是非零元素的個(gè)數(shù)),A(i,1): 第i個(gè)非零元素的行下標(biāo)A(i,2): 第i個(gè)非零元素的列下標(biāo)A(i,): 第i個(gè)非零元素值的實(shí)部A(i,): 第i個(gè)非零元素值的虛部,若矩陣的全部元素都是實(shí)數(shù),則無(wú)需第四列演示spconvert函數(shù)的功能例2-29在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果1)A=

40、1 2 3;3 4 5;6 7 8B=spconvert(A)2)A=1 2 3 4;3 4 5 6;6 7 8 9B=spconvert(A)spdiags函數(shù)產(chǎn)生帶狀稀疏矩陣格式:A=(B,d,m,n)功能:返回帶狀稀疏矩陣A。參數(shù)m,n為原帶狀矩陣的行數(shù)與列數(shù)。B為rxp階矩陣,這里r=min(m,n), p為原帶狀矩陣所有非零對(duì)角線的條數(shù),矩陣B的第列為第i條非零對(duì)角線; d是長(zhǎng)度為p的向量,d(i)是第i條非零對(duì)角線相對(duì)于主對(duì)角線的位置。關(guān)于spdiags的其它使用格式(自己查幫助)演示spdiags的功能例創(chuàng)建一個(gè)帶寬為3, 主對(duì)角線元素均為4,相鄰的兩條次對(duì)角線元素均為1的n階稀

41、疏方陣(n取10)。程序如下:n=10;b0=repmat(4,n,1);b1=repmat(1,n,1);b2=b1;B=b0 b1 b2; d=0 1 -1;A=spdiags(B,d,n,n)F=full(A)函數(shù)eye, rand和randn產(chǎn)生完全存儲(chǔ)方式的矩陣,對(duì)應(yīng)的稀疏矩陣函數(shù)是speye, sprand和 sprandn格式: speye(m,n)功能:返回一個(gè)mxn的稀疏存儲(chǔ)方式的單位矩陣speye函數(shù)舉例例2-31 分析下列語(yǔ)句的功能spa=speye(4) %等價(jià)于spa=speye(4,4)spa(2,1)=-2spa(2,2)=02.5 矩陣和數(shù)組的算術(shù)運(yùn)算Matla

42、b中定義了矩陣運(yùn)算和數(shù)組運(yùn)算。矩陣運(yùn)算以矩陣作為運(yùn)算要素,數(shù)組運(yùn)算以數(shù)組元素作為運(yùn)算要素。利用help ops命令可以查看Matlab中的運(yùn)算符及特殊符號(hào)的用法。2.5.1 基本矩陣運(yùn)算1. 加減運(yùn)算C=A+B 也可以寫作 C=plus(A,B)C=A-B也可以寫作 C=minus(A,B)C=+A 也可以寫作 C=uplus(A)C=-A 也可以寫作 C=uminus(A)注意:1) 如果A和B中有一個(gè)是標(biāo)量,則用該標(biāo)量和矩陣的每個(gè)元素分別進(jìn)行運(yùn)算。2) 否則,只有當(dāng)size(A)=size(B)時(shí)才可以進(jìn)行加減運(yùn)算。2. 乘法運(yùn)算矩陣乘法運(yùn)算符為*C=A*B 也可以寫作C=mtimes(A

43、,B)注意:1) 如果A和B中有一個(gè)是標(biāo)量,則用該標(biāo)量和矩陣的每個(gè)元素分別進(jìn)行運(yùn)算。2) 否則,根據(jù)線性代數(shù)知,只有當(dāng)A的列數(shù)等于B的行數(shù)時(shí)才可以進(jìn)行以上運(yùn)算。3. 乘方運(yùn)算運(yùn)算符:Ak 也可以寫成 mpower(A,k)注意:A必須是方陣。當(dāng)k為正整數(shù)時(shí),表示k個(gè)(按矩陣的乘法)相乘。例如:A3和A*A*A結(jié)果相同4. 除法運(yùn)算1) 矩陣左除AB也可以寫作mldivide(A,B)當(dāng)為可逆矩陣時(shí),AB=inv(A)*Bx=Ab為線性方程組A*x=b的解設(shè)size(A)=m,n,當(dāng)mn(或mn)時(shí), x=Ab為線性方程組A*x=b的最小二乘(最小二范數(shù))解。2) 矩陣右除/A/B=A*inv(

44、B) 也可以寫作 mrdivide(A,B) 當(dāng)B為標(biāo)量時(shí),表示用A的每個(gè)元素除以例2-35 求解線性方程組程序如下:A=2 2 -1 1;4 3 -1 2;8 3 -3 4;3 3 -2 -2;b=4 6 12 6;x=Ab%等價(jià)于 x=inv(A)*b6223312433862344224321432143214321xxxxxxxxxxxxxxxx5.矩陣的轉(zhuǎn)置A表示矩陣的共軛轉(zhuǎn)置,A也可以寫成ctranspose(A)A.表示矩陣的(非共軛)轉(zhuǎn)置,A.也可以寫成transpose(A)當(dāng)A是實(shí)矩陣時(shí), A和A.相同。兩種不同轉(zhuǎn)置的例子例在命令窗口輸入以下命令,比較兩種轉(zhuǎn)置的不同clea

45、r;A=zeros(2,3);A(:)=1:6 %全元素賦值法A=A*(1+i)A_A= A. % 數(shù)組轉(zhuǎn)置,即非共軛轉(zhuǎn)置A_M= A % 矩陣轉(zhuǎn)置,即共軛轉(zhuǎn)置類似的幾個(gè)操作fliplr,flipud,rot90函數(shù)fliplr用于將矩陣各列左右顛倒,flipud將矩陣各行上下顛倒,rot90將矩陣元素繞矩陣的中心逆時(shí)針旋轉(zhuǎn)90度。例如:r=rand(3)b=diag(r) %提取r的主對(duì)角線元素rr=fliplr(r)b1=diag(fliplr(r) %提取r的反對(duì)角線元素X=magic(5),rot90(X)向高維的推廣flipdim函數(shù)格式:B=flipdim(A,dim)功能:將A關(guān)

46、于第d維翻轉(zhuǎn)得到B。dim=1, 對(duì)行下標(biāo)進(jìn)行反轉(zhuǎn); dim=2, 對(duì)列下標(biāo)進(jìn)行反轉(zhuǎn),以此類推。對(duì)于矩陣A,flipdim(A,1) 等價(jià)于flipud(A), flipdim(A,2) 等價(jià)于fliplr(A)。 例如:在命令行輸入以下命令,觀察執(zhí)行結(jié)果A(:,:,1)=round(10*rand(4);A(:,:,2)=A(:,:,1)+1; A(:,:,3)=A(:,:,1)+2 A1=flipdim(A,1), A2=flipdim(A,2), A3=flipdim(A,3)6. 矩陣的Kronecker乘積(張量積) Z = KRON(X,Y)Z = KRON(X,Y) 是矩陣X和Y

47、的Kronecker張量積。設(shè)size(X)=m,n, 則Z=Z= X(1,1) X(1,1)* *Y X(1,2)Y X(1,2)* *Y Y X(1,n)X(1,n)* *Y;Y; X(2,1) X(2,1)* *Y X(2,2)Y X(2,2)* *Y X(2,n)Y X(2,n)* *Y;Y; X(m,1) X(m,1)* *Y X(m,2)Y X(m,2)* *Y X(m,n)Y X(m,n)* *YY注意:注意: Kronecker乘積不滿足交換律。Kronecker乘積舉例例在命令窗口輸入以下命令,觀察執(zhí)行結(jié)果B=eye(2)C=reshape(1:4,2,2)X=kron(B,

48、C)Y=kron(C,B)2.5.2 數(shù)組運(yùn)算(點(diǎn)運(yùn)算)在運(yùn)算符* / 前面加.號(hào)表示數(shù)組運(yùn)算(或稱為點(diǎn)運(yùn)算)A.*B也可以寫作times(A,B)C=A.B也可以寫作C=ldivide(A,B) 執(zhí)行后 C(i,j)=B(i,j)/A(i,j)C=A./B也可以寫作C=rdivide(A,B) 執(zhí)行后C(i,j)=A(i,j)/B(i,j)A.B 也可以寫作power(A,B) 注意: 1)A和B中有一個(gè)為標(biāo)量時(shí),則用該標(biāo)量分別和矩陣的每個(gè)元素進(jìn)行運(yùn)算。2)除上述情況外,只有當(dāng)size(A)=size(B)時(shí)A和B才可以進(jìn)行數(shù)組運(yùn)算(或稱為點(diǎn)運(yùn)算),A和B的對(duì)應(yīng)元素進(jìn)行運(yùn)算。點(diǎn)運(yùn)算舉例例在命

49、令窗口輸入以下命令,觀察執(zhí)行結(jié)果 a=1 2 3 4 5,b=1 3 5 7 9 c=a.*b d=a.2, e=2.a, f=b.a g=a./b, h=a.b x=1./a例求1100的平方、平方根和立方根程序:M=1:100;M2=M.2;M2rt=M.(1/2);M3rt=M.(1/3);M M2 M2rt M3rt %或M; M2; M2rt; M3rt2.5.3 矩陣的一些基本函數(shù)1.函數(shù)庫(kù)elfun中的一些函數(shù)(基本數(shù)學(xué)函數(shù))函數(shù)庫(kù)elfun提供了各種基本的數(shù)學(xué)函數(shù),包括三角函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)、整數(shù)函數(shù)、復(fù)數(shù)的基本函數(shù)等??梢暂斎雋elp elfun命令查看有關(guān)信息。需要注

50、意的是: MATLAB 6.5MATLAB 6.5以前的版本三角函數(shù)的自變量和反以前的版本三角函數(shù)的自變量和反三角函數(shù)的返回值為弧度;三角函數(shù)的返回值為弧度;MATLAB 7.0MATLAB 7.0版本中提供了三角函數(shù)的自變量和版本中提供了三角函數(shù)的自變量和反三角函數(shù)的返回值分別為角度和弧度的兩類反三角函數(shù)的返回值分別為角度和弧度的兩類函數(shù)。函數(shù)。 三角函數(shù)及反三角函數(shù)三角函數(shù):sin sind sinh cos cosd cosh tan tand tanh cot cotd coth sec secd sech csc cscd csch 反三角函數(shù): asin asind asinh a

51、cos acosd acosh atan atand atanh acot acotd acoth asec asecd asech acsc acscd acsch冪函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)等abs 絕對(duì)值或復(fù)數(shù)的模sign 符號(hào)函數(shù)exp 以e為底的指數(shù)函數(shù)log 自然對(duì)數(shù)(以e為底)log10 常用對(duì)數(shù)(以10為底)log2 以10為底的對(duì)數(shù)pow2 2的冪sqrt 平方根nthroot(x,n) x的n次方根,等價(jià)于x.(1/n)取整與求余round 四舍五入到整數(shù)fix 截?cái)嗳≌鹒loor 向下取整 ceil 向上取整 mod 模除求余rem 求余 復(fù)數(shù)的一些基本函數(shù)realreal

52、 復(fù)數(shù)的實(shí)數(shù)部分復(fù)數(shù)的實(shí)數(shù)部分real(b)real(b)imagimag 復(fù)數(shù)的虛數(shù)部分復(fù)數(shù)的虛數(shù)部分imagimag(b)(b)absabs 絕對(duì)值或模絕對(duì)值或模abs(b)abs(b)angleangle 幅角幅角 angle(b) angle(b) 結(jié)果為弧度結(jié)果為弧度angle(b)angle(b)* *180/pi 180/pi 結(jié)果為角度結(jié)果為角度conjconj 共軛共軛conj(b)conj(b)2. 函數(shù)庫(kù)specfun中的一些數(shù)學(xué)函數(shù)特殊數(shù)學(xué)函數(shù)函數(shù)庫(kù)specfun 中定義了一些特殊的數(shù)學(xué)函數(shù),包括:特殊函數(shù)(例如Beta函數(shù)、Gamma函數(shù)、誤差函數(shù)等)、數(shù)論中的一些函

53、數(shù)、坐標(biāo)轉(zhuǎn)換函數(shù)等。可以通過(guò)help specfun來(lái)查看有關(guān)函數(shù)的基本信息。數(shù)論中的一些函數(shù)isprime(n) - 判斷n是否為質(zhì)數(shù),若是返回1,否則返回0factor (n) - 將整數(shù)n分解質(zhì)因素gcd(a,b) - 求整數(shù)a和b的最大公約數(shù)lcm(a,b) - 求整數(shù)a和b的最小公倍數(shù)N,D = RAT(X,tol) - 有理數(shù)逼近,求的近似有理數(shù)(tol是精度)Xstr=RATS(X,LEN) -有理數(shù)輸出,將用近似的有理數(shù)輸出結(jié)果(為長(zhǎng)度小于的字符串)perms(1:N) 求:N的所有排列nchoosek(n,k) 求knC坐標(biāo)變換函數(shù)cart2sph - 將直角坐標(biāo)轉(zhuǎn)化為球坐標(biāo)

54、cart2pol - 將直角坐標(biāo)轉(zhuǎn)化為極坐標(biāo)pol2cart - 將極坐標(biāo)轉(zhuǎn)化為直角坐標(biāo)sph2cart - 將球坐標(biāo)轉(zhuǎn)化為直角坐標(biāo)hsv2rgb - 將顏色的HSV表示形式轉(zhuǎn)化為RGB表示形式rgb2hsv - 將顏色的RGB表示形式轉(zhuǎn)化為HSV表示形式點(diǎn)積、叉積和混合積dot(a,b) - 計(jì)算向量a和b的點(diǎn)積cross(a,b) - 計(jì)算三維向量a和b的叉積dot(cross(a,b),c) -三維向量a,b,c的混合積3. datafun函數(shù)庫(kù)中的幾個(gè)常用函數(shù)數(shù)據(jù)分析函數(shù)庫(kù)datafun中包含了一些基本的數(shù)據(jù)分析與處理函數(shù),包括:基本的統(tǒng)計(jì)函數(shù)、差分與數(shù)值微分、梯度、離散Laplaci

55、an,相關(guān)性分析、濾波與卷積、 Fourier 變換等可以通過(guò)help datafun來(lái)查看有關(guān)函數(shù)的基本信息?;窘y(tǒng)計(jì)分析函數(shù)最大值(max)和最小值(min)max函數(shù)基本格式:xm=max(x)或xm, i=max(x)功能:如果x是向量,返回向量x的最大元素xm及其下標(biāo)i;如果x是矩陣,則分別求矩陣X中每一列元素的最大值及其位置(行下標(biāo))例如:x=round(10*rand(1,10)xm ind=max(x)X=magic(3)xm ind=max(X) 問(wèn)題:設(shè)是矩陣,如何分別求矩陣X每一行元素的最大值?格式: y=max(X,dim)或y, inds=max(X,dim)功能:當(dāng)

56、dim=1時(shí), max(X,1)等價(jià)于max(X);當(dāng)dim=2時(shí),分別求矩陣X中每一行元素的最大值及其位置(列下標(biāo))。例如:X=magic(7); y,inds=max(X,2)為什么要有第二個(gè)參數(shù)?格式:Y=max(A,B) 或 Y=max(A,n) 其中,A和B是標(biāo)量、向量或矩陣,size(A)=size(B),n是標(biāo)量功能:返回和同型的標(biāo)量、向量或矩陣,Y的每個(gè)元素等于和中對(duì)應(yīng)元素的較大者(或的對(duì)應(yīng)元素和n的較大者)。min函數(shù)的使用格式和max相同(略)。問(wèn)題:如何求矩陣中所有元素的最大值?平均值(mean)和中值(median)mean函數(shù)求平均值格式:y=mean(x)功能:)若

57、x是一個(gè)向量,則返回x中各元素的均值;)若x是一個(gè)矩陣,則分別計(jì)算矩陣每一列元素的均值,返回一個(gè)行向量,此時(shí),y(j)是x的第j列元素的均值。格式:mean(,dim),其中,是一個(gè)矩陣功能:當(dāng)dim=1時(shí)(可省略),分別計(jì)算矩陣每一列的均值,返回一個(gè)行向量;當(dāng)dim=時(shí),分別計(jì)算矩陣每一行的均值,返回一個(gè)列向量。median函數(shù)求中值數(shù)列x的中值(median):對(duì)x中的元素從小到大排序,若length(x)為奇數(shù),則位于中間的那個(gè)元素的值稱為數(shù)列x的中值;若length(x)為偶數(shù),則位于中間的兩個(gè)元素的平均值稱為數(shù)列x的中值。例:)求數(shù)列9,-2,5,7,12的中值排序后為:-2,5,7

58、,9,12,故中值為7.2)數(shù)列3,4,5,6,7,8的中值: (5+6)/2=5.5median函數(shù)和mean的使用格式相同。求和(sum)sum函數(shù)格式:y=sum(x)功能:)若x是一個(gè)向量,則返回向量x中各元素的和;)若x是一個(gè)矩陣,則分別計(jì)算矩陣每一列元素的和,返回一個(gè)行向量,此時(shí),y(j)是x的第j列元素之和。格式:sum(,dim),其中,是一個(gè)矩陣功能:當(dāng)dim=1時(shí)(可省略),分別計(jì)算矩陣每一列的和,返回一個(gè)行向量;當(dāng)dim=時(shí),分別計(jì)算矩陣每一行的和,返回一個(gè)列向量。求積(prod)函數(shù)prod的使用格式和sum相同。若x是一個(gè)向量,則prod(x)返回向量中所有元素的乘積

59、;若X是一個(gè)矩陣,則prod(X)分別計(jì)算矩陣X每一列元素的乘積,返回一個(gè)行向量,prod(X,2)則分別計(jì)算矩陣X每一行元素的乘積,返回一個(gè)列向量。例如:可以用prod(1:n)來(lái)計(jì)算n!,可以用 prod(1:2:2*n-1) 計(jì)算1*3*(2n-1),etc.累加和(cumsum)和累乘積(cumprod)函數(shù)cumsum格式:y=cumsum(x),x為向量功能:返回向量x的累加和向量y。y的長(zhǎng)度和x相同,y(i)=sum(x(1:i)。格式:=cumsum(X,dim),X為矩陣。功能:當(dāng)dim=1時(shí)(可省略),返回一個(gè)矩陣,其第i列是的第i列的累加和向量;當(dāng)dim=2時(shí),返回一個(gè)矩

60、陣,其第i行是的第行的累加和向量。函數(shù)cumprod的使用格式和cumsum類似(略)標(biāo)準(zhǔn)偏差(std)計(jì)算數(shù)列xi,i=1,2,n的標(biāo)準(zhǔn)差時(shí)有兩種計(jì)算公式公式(1):公式(2):其中,m是數(shù)列的均值。在中計(jì)算標(biāo)準(zhǔn)差的函數(shù)是std.niimxn12)(11niimxn12)(1函數(shù)std格式:std(x,flag)功能:當(dāng)x為向量時(shí),返回向量x的標(biāo)準(zhǔn)差;當(dāng)x為矩陣時(shí),分別計(jì)算矩陣x每一列元素的標(biāo)準(zhǔn)差,返回一個(gè)行向量。 flag取0 或。當(dāng)flag取0時(shí)(可省略),按公式()計(jì)算;flag取1時(shí),按公式()計(jì)算。格式:y=std(X,flag,dim),為矩陣功能:當(dāng)dim=1時(shí)(可省略),分別

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論