matlab入門(000002)_第1頁(yè)
matlab入門(000002)_第2頁(yè)
matlab入門(000002)_第3頁(yè)
matlab入門(000002)_第4頁(yè)
matlab入門(000002)_第5頁(yè)
已閱讀5頁(yè),還剩157頁(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、Matlab基礎(chǔ)教程上海財(cái)經(jīng)大學(xué)浙江學(xué)院一 Matlab基礎(chǔ)知識(shí)當(dāng)前瀏覽目錄指令窗口工作空間歷史指令窗口例:求下列式子的算術(shù)運(yùn)算結(jié)果2122 (74) 3 (1)用鍵盤在MATLAB指令窗中輸入以下內(nèi)容 (2)輸入完成后,按Enter鍵,執(zhí)行指令并顯示結(jié)果“” 表示 :指令提示符ans 是 answer 的縮寫,表示沒有賦值號(hào)的表達(dá)式什么是賦值呢?輸入:得出:即,把=右邊的值傳遞給a,稱為賦值把a(bǔ)稱為變量變量的命名規(guī)則(1)變量名的第一個(gè)字符必須是英文字母,最多可包含63個(gè)字符(英文、數(shù)字和下連符_)(2)變量名對(duì)字母大小寫敏感。如,a和A表示不同的變量; sin 在MATLAB中表示正弦函數(shù)

2、名,但SIN、Sin等都不是(3)定義變量名的兩個(gè)忌諱:(3.1)變量名不應(yīng)與MATLAB關(guān)鍵詞(如for,if/else,end等)同名;(3.2)變量名盡量不與MATLAB自用的變量名(如eps,pi等)、函數(shù)名 (sin,cos等)、文件夾名(rtw,toolbox等)相同。為幫助判斷定義的變量名是否與MATLAB中重復(fù),MATLAB提供了以下兩個(gè)判斷指令:(1)iskeyword 變量名 若運(yùn)行結(jié)果為0,表示變量名不同于MATLAB關(guān)鍵詞;(2)exist 變量名 若運(yùn)行結(jié)果為0,表示變量名不同于MATLAB自用的變量名、函數(shù)名、文件名1.1 數(shù)據(jù)類型用于表示數(shù)據(jù)的結(jié)構(gòu)。MATLAB中

3、的數(shù)據(jù)類型包括數(shù)值類型、邏輯類型、字符串、函數(shù)句柄、結(jié)構(gòu)體和單元數(shù)組類型。1.1.1 數(shù)值類型數(shù)值類型主要有整數(shù)、單精度浮點(diǎn)數(shù)和雙精度浮點(diǎn)數(shù)。MATLAB對(duì)所有數(shù)值按照雙精度浮點(diǎn)數(shù)類型進(jìn)行存儲(chǔ)和操作。1. 整數(shù)類型數(shù)據(jù)格式類型數(shù)值范圍int8有符號(hào)8位整數(shù)uint8無有符號(hào)8位整數(shù)int16有符號(hào)16位整數(shù)uint16無有符號(hào)16位整數(shù)int32有符號(hào)32位整數(shù)uint32無有符號(hào)32位整數(shù)int64有符號(hào)64位整數(shù)uint64無有符號(hào)64位整數(shù)15152 21772 2180 2160 2131312 21320 2163632 21640 21(1)整數(shù)類型分為有符號(hào)和無符號(hào);(2)整數(shù)類

4、型占用的內(nèi)存較少;(3)在32位操作系統(tǒng)下,int64和uint64不能進(jìn)行數(shù)值運(yùn)算。(4)不同的整數(shù)類型所占用的位數(shù)不同,表示的數(shù)值范圍也不同,在實(shí)際應(yīng)用中需要合理選擇適合的整數(shù)類型。 由于MATLAB默認(rèn)的是雙精度浮點(diǎn)類型,因此在去整的時(shí)候,需要用到取整的轉(zhuǎn)換函數(shù),將雙精度浮點(diǎn)類型轉(zhuǎn)換為整形。 MATLAB常見的取整函數(shù)有:floor(x),ceil(x),round(x),fix(x)。2. 浮點(diǎn)類型浮點(diǎn)類型浮點(diǎn)類型存儲(chǔ)位寬存儲(chǔ)位寬各數(shù)位的意義各數(shù)位的意義數(shù)值范圍數(shù)值范圍單精度(single)320-22位表示小數(shù)部分23-30位表示指數(shù)部分31位表示符號(hào)(0正1負(fù))雙精度(double

5、)(MATLAB默認(rèn)類型)640-51位表示小數(shù)部分52-62位表示指數(shù)部分63位表示符號(hào)3.40282038 3.40282038ee1.79769308 1.79769308ee相同數(shù)值的單精度浮點(diǎn)類型比雙精度浮點(diǎn)類型占用更少內(nèi)存;單精度的數(shù)值范圍要比雙精度的小例: 求ab,ac,bc的值int32(120);sin(22.809);73.226aubglec注意:在MATLAB中,單精度浮點(diǎn)類型不能與整數(shù)類型進(jìn)行算術(shù)運(yùn)算。無窮量(Inf)和非數(shù)值量(NAN)Inf:表示計(jì)算結(jié)果超出了雙精度浮點(diǎn)數(shù)的數(shù)值為范圍,成為無窮大。Inf:-Inf:NAN:由 類型的非正常運(yùn)算的結(jié)果表示。0/0/

6、InfInf或1.1.2 邏輯類型 邏輯類型的數(shù)據(jù)是指布爾類型的數(shù)據(jù)集數(shù)據(jù)之間的邏輯關(guān)系。就是通過關(guān)系和邏輯運(yùn)算,得出結(jié)果為真假的輸出:對(duì)于真,輸出為1;對(duì)于假,輸出為0.1. 關(guān)系運(yùn)算 實(shí)質(zhì)就是比大小。需要用到關(guān)系操作符:關(guān)系操作符關(guān)系操作符說明說明小于大于=大于或等于=等于=不等于例:比較兩個(gè)數(shù)組之間的元素是否相等A=1:9 ,B=10-ATrueorFalse=(A=B)在Matlab中,“=”表示賦值,“=”表示等于2. 邏輯運(yùn)算 邏輯變量之間的運(yùn)算。 邏輯運(yùn)算符:“&”表示“與”,“|”表示“或”,“”表示“非”例:判斷數(shù)組A中的元素是否存在2與6之間A=1:9Trueorf

7、alse=(A2)&(A6)例:判斷數(shù)組A中的元素是否存在小于2或大于6的元素2.1.3 字符與字符串字符是指在計(jì)算機(jī)中使用的字母、數(shù)字、字和符號(hào),包括:1、2、3、a、b、C、!.#%()*等等。字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。注意區(qū)分:a=1和a=1;例:string=every good boy does fun.以用函數(shù)size來獲知字符串的在計(jì)算機(jī)中說占用的空間。size(string)可知,字符串在計(jì)算機(jī)中是以數(shù)組的形式存儲(chǔ)的。 例:獲取字符串string第7-10位的子串U=string(7:10) 字符串的連接 在MATLAB中可以用矩陣

8、的形式對(duì)兩個(gè)字符串進(jìn)行連接。例:U=Hello,;V=World !;W=U V;W=strcat(U,V)字符串查找和替換函數(shù)字符串查找和替換函數(shù)String=Peter Piper picked a peck of pickled peppers.查找findstr(String, )findstr(String,p)findstr(Strign,pick)替換String(1:11)=Helen SmithString=strrep(String,Helen Smith,Sabrina Crame)1.1.5 結(jié)構(gòu)體類型結(jié)構(gòu)體就是可以通過字段存儲(chǔ)多個(gè)不同類型的數(shù)據(jù)。結(jié)構(gòu)體相當(dāng)于一個(gè)數(shù)據(jù)容

9、器,把多個(gè)相關(guān)聯(lián)的不同類型的數(shù)據(jù)封裝在一個(gè)結(jié)構(gòu)體對(duì)象中。比如,學(xué)生信息(student)里,存有學(xué)號(hào)(num)、姓名(name)、年級(jí)(grade)、所學(xué)科目(subject)有語(yǔ)文(Chinese)、數(shù)學(xué)(Math)、英語(yǔ)(English),同時(shí)還有各科的成績(jī)(scores)5和字段,如圖。1. 通過字段賦值創(chuàng)建結(jié)構(gòu)體在命令窗口中輸入:student.num=2014001;=lilei;student.grade=6;student.subject=Chinese,Math,English;student.scores=99,88,89;查看一下結(jié)構(gòu)體student

10、所占的空間大小size(student)2. 利用struct函數(shù)創(chuàng)建結(jié)構(gòu)體Struct函數(shù)的句法形式為:StrArray=struct(field1,var1,field2,var2,fieldn,varn)上述語(yǔ)句創(chuàng)建結(jié)構(gòu)對(duì)象為StrArray,并將n個(gè)字段分別賦值為var1,var2,varn。例:date=struct(Day,Friday,Time,18:00,activity,shopping)Date=struct(Day,Friday,Saturday,Time,18:00,19:00,activity,shopping,see a movie)1.1.6 數(shù)組類型所謂數(shù)組,就

11、是相同數(shù)據(jù)類型的元素按一定順序排列的集合例:A=1 2 3 4 5或B=1,2,3,4,5在Matlab中可以用“:”來代表一系列數(shù)值。A=i:j創(chuàng)建從i開始,步長(zhǎng)為1,到j(luò)結(jié)束的數(shù)字序列,即i,i+1,i+2,j。A=1:10A=i:k:j創(chuàng)建從i開始,步長(zhǎng)為k,到j(luò)結(jié)束的數(shù)字序列,即i,i+k,i+2k,j。A=1:2:10A=linspace(a,b,n)在區(qū)間a,b上創(chuàng)建一個(gè)有n個(gè)元素的向量,即把區(qū)間a,b,n等分。A=linspace(0,2*pi,10)創(chuàng)建空數(shù)組A_Empty=;Size(A);當(dāng)數(shù)組的元素個(gè)數(shù)為0時(shí),稱數(shù)組為空。字符串?dāng)?shù)組day=Mon Tur Wed Thur

12、s Fri Sat Sun2.2 基本矩陣操作基本矩陣操作2.2.1 矩陣的概念在數(shù)學(xué)上,定義由 個(gè)數(shù) 排成的m行n列的數(shù)表 為m行n列矩陣,并用大寫字母表示。mn(1,2,;1,2, )ija im jn111212122212nnmmmnaaaaaaAaaa只有一行的矩陣稱為行向量只有一列的矩陣稱為列向量12nAaaa123aaAaMatlab中矩陣和數(shù)組的區(qū)別: 在Matlab內(nèi)進(jìn)行運(yùn)算的所有數(shù)據(jù)類型,都是按照數(shù)據(jù)及矩陣的形式進(jìn)行存儲(chǔ)和運(yùn)算的。同時(shí),矩陣是以數(shù)組的形式存在,因此,以為數(shù)組相當(dāng)于向量,二維數(shù)組相當(dāng)于矩陣,可以說矩陣是數(shù)組的子集。兩者的區(qū)別:(1)矩陣是數(shù)學(xué)上的概念,而數(shù)組是

13、計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域的概念。(2)作為一種變換或者映射算符的體現(xiàn),矩陣運(yùn)算有著明確而嚴(yán)格的數(shù)學(xué)規(guī)則。而數(shù)組運(yùn)算是MATLAB軟件定義的規(guī)則,其目的是為了使數(shù)據(jù)管理方便,操作簡(jiǎn)單,命令形式自然,執(zhí)行計(jì)算有效。2.2.2 矩陣構(gòu)造1. 建立簡(jiǎn)單矩陣(1)用逗號(hào)和分號(hào)構(gòu)造二維矩陣A=2,3,4;5,6,7(2)用空格和分號(hào)構(gòu)造二維矩陣B=2 3 4;5 6 7(3)構(gòu)造行向量C=8,9,3,50(4)構(gòu)造列向量D=8;9;3;50因此,構(gòu)造矩陣用“ ”,同行元素用空格或逗號(hào)隔開,行與行之間用“;”隔開 2. 建立特殊矩陣函數(shù)名稱函數(shù)名稱函數(shù)功能函數(shù)功能ones(n)構(gòu)建一個(gè) 的1矩陣(矩陣的元素全是1

14、)ones(m,n,p)構(gòu)建一個(gè) 的1矩陣ones(size(A)構(gòu)建一個(gè)和矩陣A同樣大小的1矩陣zeros(n)構(gòu)建一個(gè) 的0矩陣(矩陣的元素全是0)zeros(m,n,p)構(gòu)建一個(gè) 的0矩陣zeros(size(A)構(gòu)建一個(gè)和矩陣A同樣大小的0矩陣eye(n)構(gòu)建一個(gè) 的單位矩陣eye(m,n)構(gòu)建一個(gè) 的單位矩陣eye(size(A)構(gòu)建一個(gè)和矩陣A同樣大小的單位矩陣nnnnnnmnmnp mnp magic(n)構(gòu)建一個(gè) 的矩陣,其每行、每列的元素之和都相等rand(n)構(gòu)建一個(gè) 的矩陣,其元素為01之間均勻分布的隨機(jī)數(shù)rand(m,n,p)構(gòu)建一個(gè) 的矩陣,其元素為01之間均勻分布的

15、隨機(jī)數(shù)randn(n)構(gòu)建一個(gè) 的矩陣,其元素為零均值、單位方差的正態(tài)分布隨機(jī)數(shù)randn(m,n,p)構(gòu)建一個(gè) 的矩陣,其元素為零均值、單位方差的正太分布隨機(jī)數(shù)diag(x)構(gòu)建一個(gè) n 維的方陣,其主對(duì)角線元素值取自向量x,其余元素都為0diag(A,k)構(gòu)建一個(gè)由矩陣A第k條對(duì)角線的元素組成的列向量,k=0為主對(duì)角線;k0為上第k對(duì)角線diag(x,k)構(gòu)建一個(gè) 維矩陣,該矩陣的第k條對(duì)角線元素取自向量x,其余元素都為0triu(A)構(gòu)建一個(gè)和A大小相同的上三角矩陣。該矩陣的主對(duì)角線上元素為A中相應(yīng)元素,其余元素都為0triu(A,k)構(gòu)建一個(gè)和A大小相同的上三角矩陣。該矩陣的第k條對(duì)角

16、線上元素為A中相應(yīng)元素,其余元素都為0tril(A)構(gòu)建一個(gè)和A大小相同的下三角矩陣。該矩陣的主對(duì)角線上元素為A中相應(yīng)元素,其余元素都為0tril(A,k)構(gòu)建一個(gè)和A大小相同的下三角矩陣。該矩陣的第k條對(duì)角線上元素為A中相應(yīng)元素,其余元素都為0nnnnmnp mnp nn(|) (|)mknk3. 向量、標(biāo)量與空矩陣(1)向量當(dāng)m=1或n=1,即 或 時(shí),建立的矩陣稱為向量。a=1 2 3 4 5 6b=1;2;3;4;5;6(2)標(biāo)量當(dāng) 時(shí),建立的矩陣稱為標(biāo)量,任意以 的矩陣形式表示的單個(gè)實(shí)數(shù),復(fù)數(shù),都是標(biāo)量。x=10+2i %將復(fù)數(shù)10+2i賦值給變量xy=10+2i %將復(fù)數(shù)10+2i

17、構(gòu)成的矩陣賦值給變量yx=y %判斷x和y是否相等1 n1m1mn1 1(3)空矩陣當(dāng) 時(shí),創(chuàng)建的矩陣稱為空矩陣x=whos(x)z=0 0 0;0 0 0Whos(z)0 0,0,0n m2.2.3 矩陣大小及結(jié)構(gòu)的改變矩陣大小和結(jié)構(gòu)的改變主要的方式有旋轉(zhuǎn)、改變維度、刪除矩陣元素等函數(shù)名稱函數(shù)名稱函數(shù)功能函數(shù)功能filplr(A)矩陣每一行均進(jìn)行逆排序flipud(A)矩陣每一列均進(jìn)行逆排序rot90(A)逆時(shí)針旋轉(zhuǎn) rot90(A,k)逆時(shí)針旋轉(zhuǎn)9090k2.2.4 矩陣下標(biāo)引用在Matlab中,普通二維數(shù)組元素的數(shù)字索引分為雙下標(biāo)索引和單下標(biāo)索引。如,若矩陣A為4維方陣,則A(2,3)表

18、示矩陣A中第2行第3列的元素。 A(7)表示矩陣A中第3行第2列的元素。雙下標(biāo)索引和單下標(biāo)索引的轉(zhuǎn)化(1)將雙下標(biāo)索引值轉(zhuǎn)化單下標(biāo)索引值 n=sub2ind(size(A),i,j)(2)將單下標(biāo)索引值雙下標(biāo)索引值 i j=ind2sub(size(A),n)矩陣的索引表達(dá)式索引表達(dá)式索引表達(dá)式函數(shù)功能函數(shù)功能A( i )返回?cái)?shù)組第 i 哥元素A( : , j )返回二維矩陣A中第 j 列列向量A( i , : )返回二維矩陣A中第 i 行行向量A( : , j : k )返回由二維矩陣A中第 j 列到第 k 列列向量組成的子矩陣A( i : k , : )返回由二維矩陣A中第 i 行到第 k

19、 行行向量組成的子矩陣A( i : m , j : n )返回由二維矩陣A中第 i 行到第 m 行行向量和第 j 行到第 k 行行向量的交集組成子矩陣A( : )將矩陣A中的每列合并成一個(gè)長(zhǎng)的列向量A( j : k )返回一個(gè)行向量,其元素為A(:)中的第j個(gè)元素到第k個(gè)元素返回一個(gè)行向量,其中的元素為A(:)的第 元素12()Ajj12jj、索引表達(dá)式索引表達(dá)式函數(shù)功能函數(shù)功能返回矩陣A的第 列、第 列的列向量返回矩陣A的第 行、第 行的列向量返回矩陣第 行、第 行和第 列、第 列元素12(:,)Ajj12(,:)A ii1212(,)A iijj1j1j2j2j1i1i2i2i例: 設(shè)A=

20、magic(4), (1)求第4列元素的和 (2)將元素1修改成-1 (3)增加全為0的一行2.2.5 矩陣信息的獲取1. 獲取矩陣的維數(shù) n=ndims(X)2. 獲取矩陣在各個(gè)維上的長(zhǎng)度 m,n=size(X)3. 獲取矩陣最長(zhǎng)維的長(zhǎng)度 n=length(X)4. 獲取矩陣元素的個(gè)數(shù) n=numel(X)2.3 運(yùn)算符運(yùn)算符2.3.1 算數(shù)運(yùn)算符(A,B為數(shù)值或矩陣)A+B A與B相加A-B A與B相減A*B A與B相乘A.*B A與B相應(yīng)的元素相乘AB A左除BA/B A右除B A./B A中各元素分別除以B中各元素A.B B中各元素分別除以A中各元素111AXBA AXA BXA BA

21、 B111/XBAXBBABXABA BAB A的B次冪(B為數(shù)值)A.B A的每個(gè)元素的B次冪MATLAB中常用的運(yùn)算函數(shù)sin(x) cos(x) tan(x) asin(x) x的反正弦函數(shù) acos(x) atan(x)mod(a,b) a與b相除取余max(a,b) min(a,b)exp( )xxelog( )logexx1010( )loglogxx2log2( )logxx102210logloglogloglogloglogeaebbbbaaa( )sqrt xxmean(x) 求x陣列的平均值median(x) 求x陣列的中位數(shù)sum(x) 求x陣列的總和值prod(x)

22、求x陣列的連乘值cumsum(x) 求x陣列的累計(jì)總和值cumprod(x) 求x陣列的累計(jì)連乘值sign(x) x0時(shí)返回值為1rem(x,y) 返回x/y的余數(shù)diff(x) x向量的差分sort(x) 對(duì)x向量進(jìn)行從小到大排序fft(x) x向量的離散傅里葉變換 rank(x) x矩陣的秩二、數(shù)組與矩陣二、數(shù)組與矩陣2.2.1 數(shù)組的創(chuàng)建和操作MATLAB中一般用“”、“,”、空格和“;”來創(chuàng)建數(shù)組,數(shù)組同一行元素用逗號(hào)或空格進(jìn)行分割,不同行之間用分號(hào)進(jìn)行分割。同時(shí),必須是英文狀態(tài)下輸入例:創(chuàng)建空數(shù)組、行向量、列向量A=B=1 2 3 4 5 C=1,2,3,4,5D=1;2;3;4;5

23、例:A=1 2 3 4 5 6(1)訪問數(shù)組第一個(gè)元素:a1=A(1)(2)訪問數(shù)組第1、2、3個(gè)元素:a2=A(1:3)(3)訪問數(shù)組第3到最后一個(gè)元素:a3=A(3:end)(4)數(shù)組元素反序輸出:a4=A(end:-1:1)(5)訪問數(shù)組第1及第6個(gè)元素:a5=A(1 6)給數(shù)組賦值:(1)第三個(gè)元素賦值為0:A(3)=0(2)第1及第4個(gè)元素賦值為1:A(1 4)=1 11. 通過冒號(hào)創(chuàng)建以為數(shù)組X=A:step:BA是創(chuàng)建一維數(shù)組的第一個(gè)變量,step是每次遞增或遞減的數(shù)值,直到最后一個(gè)元素和B的差的絕對(duì)值小于等于step的絕對(duì)值為止。不指定step時(shí),系統(tǒng)默認(rèn)step=1.例:A=

24、2:6 B=2.1:1.5:6 C=2.1:-1.5:-6 D=2.1:-1.5:62. 通過logspace函數(shù)創(chuàng)建一維數(shù)組(1)y=logspace(a,b):該函數(shù)創(chuàng)建行向量y,第一個(gè)元素為 ,最后一個(gè)元素為 ,形成總數(shù)為50個(gè)元素的等比數(shù)列。(2)y=logspace(a,b,n):該函數(shù)創(chuàng)建行向量y,第一個(gè)元素為 ,最后一個(gè)元素為 ,形成總數(shù)為n個(gè)元素的等比數(shù)列 。3. 通過linspace函數(shù)創(chuàng)建一維數(shù)組(1)y=linspace(a,b):該函數(shù)創(chuàng)建行向量y,第一個(gè)元素為a,最后一個(gè)元素為b,形成總數(shù)為100個(gè)元素的等差數(shù)列。(2) y=linspace(a,b,n):該函數(shù)創(chuàng)建

25、行向量y,第一個(gè)元素為a,最后一個(gè)元素為b,形成總數(shù)為n個(gè)元素的等差數(shù)列。10a10b10a10b2.1.2 數(shù)組的常見運(yùn)算1. 算術(shù)運(yùn)算(加減乘除)數(shù)組的加減運(yùn)算要求數(shù)組A和B的維數(shù)相同。例:A=1 5 6 8 9 6 B=9 85 6 2 4 0 C=1 1 1 1 1 D=A+B E=A*B F=A*2 G=A+3 H=A-CA=1 5 6 8 9 6;B=9 5 6 2 4 0C=A.*BD=A*3D1=A.B D2=B./AE1=A./B E2=B.AF=A./3G=A/3H=A.BI=A.3J=3.A通過函數(shù)dot()實(shí)現(xiàn)數(shù)組的點(diǎn)積運(yùn)算,要求數(shù)組A和B的維數(shù)相同。格式為:C=dot

26、(A,B)A=1 5 6 8 9 6B=9 5 6 2 4 0C=dot(A,B)D=sum(A.*B)dot(A,B)=sum(A.*B)2. 數(shù)組的關(guān)系運(yùn)算(比較大小)Matlab提供了6種關(guān)系運(yùn)算符,即、=、=(恒等于)、=(不等于)A=1 5 6 8 9 6B=9 5 6 2 4 0C=A=6E=A=1); D=A(A=1); BCD=B,C,D A(find(A=0)=102.3.6 矩陣元素的排序MATLAB中用函數(shù)sort()按照升序排序。B=sort(A):對(duì)矩陣A進(jìn)行升序排序。A可為矩陣或向量B=sort(A , dim):對(duì)矩陣A進(jìn)行升序排序,并將結(jié)果返回在給定的維數(shù)dim

27、上按照升序排列,當(dāng)dim=1時(shí),按照列進(jìn)行排序,當(dāng)dim=3時(shí),按照行進(jìn)行排序。B=sort(A , mode):對(duì)矩陣A進(jìn)行排序,mode指定排序的方式,ascend指定按升序排序,為默認(rèn)值。Descend指定按降序排序。例: A=1 3 0;3 1 0;9 2 4; B=sort(A); C=sort(A,2); D=sort(A,descend) E=sort(A,2,descend)2.3.7 矩陣元素求和B=sum(A):對(duì)矩陣A各列求和。B=sum(A,dim):dim=1時(shí),對(duì)A各列求和;dim=2時(shí),對(duì)A各行求和B=cumsum(A):對(duì)A各列累計(jì)求和。B=cumsum(A,d

28、im)例: A=1 3 0;3 1 0;9 2 4; B=sum(A) C=sum(A,2) D=cumsum(A) E=cumsum(A,2) F=sum(sum(A)2.3.8 矩陣元素求積(1)B=prod(A):對(duì)矩陣A各列元素求積(2)B=prod(A,dim):當(dāng)dim=1時(shí),對(duì)A各列元素求積,當(dāng)dim=2時(shí),對(duì)A各行元素求積(3)B=cumprod(A):對(duì)各列累計(jì)求積(4)B=cumprod(A,dim)當(dāng)dim=1時(shí),對(duì)A各列累計(jì)求積,當(dāng)dim=2時(shí),對(duì)A各行累計(jì)求積A=magic(3)B=prod(A)C=prod(A,2)D=cumprod(A)E=cumprod(A,2

29、)2.3.9 矩陣元素的差分Y=diff(X):計(jì)算矩陣X各列元素的差分Y=diff(X,n):計(jì)算矩陣X各列元素的n階差分Y=diff(X,n,dim):dim=1時(shí),計(jì)算矩陣X各列元素的n階差分,dim=2時(shí),計(jì)算矩陣X各行元素的n階差分A=magic(3)B=diff(A)C=diff(A,2)D=diff(A,1,1)E=diff(A,1,2)2.4.1 矩陣的運(yùn)算1. 矩陣的秩矩陣A中線性無關(guān)的列向量個(gè)數(shù)稱為列秩,線性無關(guān)的行向量個(gè)數(shù)稱為行秩。用rank()函數(shù)計(jì)算例:A=1 2 3;3 4 5;7 8 9; B=rank(3); r1=rank(A) r2=rank(B)2. 矩陣

30、的行列式例:求矩陣 的行列式。求矩陣 的行列式Matlab中用函數(shù)det()來計(jì)算行列式1234A123345789A2.4.3 特征值和特征向量定義:設(shè)矩陣A是一個(gè) 階方陣,如果存在數(shù) 和非零向量x,使得關(guān)系式成立,那么稱 為矩陣A的特征值,非零向量x為矩陣A對(duì)應(yīng)于特征值 的特征向量。把上式改寫成這是n個(gè)未知數(shù)n個(gè)方程的齊次線性方程組,它有非零解的充分必要條件是系數(shù)行列式nnAXX()0AE X0AEeig(A):求矩陣A的特征值X,D=eig(A):產(chǎn)生一個(gè)矩陣A的特征值在對(duì)角線上的對(duì)角矩陣D和矩陣X,他們的列分別是相應(yīng)的特征值和特征向量,滿足AX=XD例: 求 的特征值即特征向量1104

31、30102A三、三、MATLAB編程基礎(chǔ)編程基礎(chǔ)3.1 M文件編輯器1. 創(chuàng)建新的M文件(1)在命令窗口中運(yùn)行指令edit。(2)單機(jī)工具欄或M文件編輯器工具欄的 圖標(biāo)。(3)點(diǎn)擊File-New-function2. 打開已有的M文件(1)命令窗口輸入edit filename(2)點(diǎn)擊圖標(biāo)(3)菜單欄File-Open例:求 的特征值及特征向量畫出sin(x)的圖形110430102A3.2 MATLAB的控制流3.2.1 順序結(jié)構(gòu)順序結(jié)構(gòu)表示程序中的各操作是按照它們出現(xiàn)的先后順序執(zhí)行的。例:計(jì)算半徑r=5的元的面積。點(diǎn)擊圖標(biāo) 新建M文件。%定義半徑變量r,并賦值r=5;%計(jì)算面積S=pi

32、*r*r%輸出面積fprintf(Area=%fn,S); 并命名為“circle_area”保存3.2.2 if-else-end分支結(jié)構(gòu)(1)若條件expression為真,則執(zhí)行命令組commands,否則跳過該命令組。 if expression commands end (2)若可供選擇的執(zhí)行命令組有兩組,則 if expression %判決條件 commands1 %判決條件為真,執(zhí)行命令組commands1,并結(jié)束此結(jié)構(gòu) else commands2 %判決條件為假,執(zhí)行命令組commands2,并結(jié)束此結(jié)構(gòu) end(3)若可供選擇的命令組有n(n2)組,則if express

33、ion1 %判決條件 commands1 %判決條件expression1為真,執(zhí)行命令組commands1,并結(jié)束此結(jié)構(gòu)elseif expression2 commands2 %判決條件expression1為假, expression2為真,執(zhí)行命令組commands2else commandsn %前面所有判決條件都為假,則執(zhí)行命令commandsn,并以此結(jié)束end例:已知符號(hào)函數(shù)使用if語(yǔ)句判斷給定變量x的值時(shí),相應(yīng)的函數(shù)值y。10sgn0010 xyxxx3.3.3 switch-caseswitch value %value為需要進(jìn)行判決的標(biāo)量或字符 case test1 co

34、mmand1 %如果value=test1,執(zhí)行command1,并結(jié)束此結(jié)構(gòu) case test2 command2 %如果value=test2,執(zhí)行command2,并結(jié)束此結(jié)構(gòu) case testk commandk %如果value=testk,執(zhí)行commandk,并結(jié)束此結(jié)構(gòu) otherwise commands %如果value不等于前面所有的值,執(zhí)行commands,并結(jié)束此結(jié)構(gòu)end例:輸入17任意數(shù),判斷星期例:求任意底數(shù)的對(duì)數(shù)函數(shù)值lognyx3.3.4 try-catchtry command1 %命令組command1總是首先被執(zhí)行。若正確,執(zhí)行完成后結(jié)束此結(jié)構(gòu)ca

35、tch command2 %命令組command1發(fā)生錯(cuò)誤時(shí)執(zhí)行command2 只有當(dāng)matlab執(zhí)行命令command1發(fā)生錯(cuò)誤時(shí),才執(zhí)行命令command2,try-catch結(jié)構(gòu)只提供兩個(gè)可供選擇的命令組. 當(dāng)執(zhí)行command1發(fā)生錯(cuò)誤時(shí),可調(diào)用函數(shù)lasterr查詢錯(cuò)誤原因,如果函數(shù)lasterr的運(yùn)行結(jié)果為空字符串,則表示命令command1被成功執(zhí)行了。例:num=6;mat=magic(4);try mat_num=mat(num,:);catch mat_end=mat(end,:);endlasterr3.3.5 for循環(huán)結(jié)構(gòu)例:利用for循環(huán)求解1+2+.+100的和

36、。sum=0;for i=1:100 sum=sum+i;endsum(1)求1100所有偶數(shù)的和。(1)求1100所有奇數(shù)的和。for循環(huán)的語(yǔ)法結(jié)構(gòu)如下for x=array commands;endfor指令后面的變量x為循環(huán)變量,而for與end之間的組命令commands被稱為循環(huán)體。循環(huán)體的執(zhí)行的次數(shù)是由array數(shù)組元素的個(gè)數(shù)來確定。每次循環(huán)過程中,變量x被依次賦值為數(shù)組array的各個(gè)元素,每次賦值循環(huán)體都要被執(zhí)行依次。例:用for循環(huán)求矩陣A=magic(6)中所有元素之和例:利用for循環(huán)求解 , ,sin()360n kx 1:10n1:4k 3.3.6 while循環(huán)結(jié)構(gòu)

37、例:用while循環(huán)求1100的和sum=0;i=1;while i b=1 2 3 6 8; c=a+bc = 2 4 8 13 17結(jié)果是:4322591317xxxx2. 多項(xiàng)式乘法例: a=1 2 5 7 9; b=1 2 3 6 8; c=conv(a,b)c = 1 4 12 29 58 85 109 110 72conv指令只能進(jìn)行兩個(gè)多項(xiàng)式的乘法,兩個(gè)以上需要重復(fù)使用conv3. 多項(xiàng)式的除法c=1 5 15 35 69 100 118 110 72;b=1 2 4 6 8; a,r=deconv(c,b)a = 1 3 5 7 9r = 0 0 0 0 0 0 0 0 0a是

38、多項(xiàng)式c除以b的商,余式子為r。4.1.3 多項(xiàng)式的導(dǎo)師、積分和估值1.多項(xiàng)式求導(dǎo)d=1 5 15 35 69 100 118 110 72;e=polyder(d)2. 多項(xiàng)式求積分polyint(P,k):求多項(xiàng)式P的積分,k為積分常數(shù)項(xiàng)polyint(P):求多項(xiàng)式P的積分,積分常數(shù)項(xiàng)默認(rèn)為03.多項(xiàng)式估值根據(jù)自變量可對(duì)多項(xiàng)式進(jìn)行估值,用函數(shù)polyvalx=-1:0.01:1;g=1 3 5 7 9;h=polyval(g,x);plot(x,h);xlabel(x);title(x4+3x3+5x2+7x+9);5.1.5 有理多項(xiàng)式像傅里葉(Fourier)、拉普拉斯(Laplac

39、e)和Z變換中,出現(xiàn)了兩個(gè)多項(xiàng)式之比。有理多項(xiàng)式由分子多項(xiàng)式和分母多項(xiàng)式表示。用函數(shù)residue運(yùn)算。例:計(jì)算多項(xiàng)式num=5 3 -2 7; %分子多項(xiàng)式den=-4 0 8 3; %分母多項(xiàng)式r,p,k=residue(num,den)3235327483xxxxxr = -1.4167 -0.6653 1.3320p = 1.5737 -1.1644 -0.4093k = -1.2500表示:1.41670.66531.3321.251.57371.16440.4093xxxresidue函數(shù)也可以執(zhí)行逆運(yùn)算num=5 3 -2 7; %分子多項(xiàng)式den=-4 0 8 3; %分母多項(xiàng)

40、式r,p,k=residue(num,den)323( )1.250.750.51.75( )20.75n xxxxd xxx函數(shù)polyder對(duì)兩個(gè)多項(xiàng)式構(gòu)成的有理多項(xiàng)式求導(dǎo)。num=5 3 -2 7; %分子多項(xiàng)式den=-4 0 8 3; %分母多項(xiàng)式b,a=polyder(num,den)5.2 數(shù)據(jù)插值插值法就是由已知的觀測(cè)點(diǎn),為物理量建立一個(gè)簡(jiǎn)單的、連續(xù)的解析模型,以便能根據(jù)該模型推測(cè)該物理量在非觀測(cè)點(diǎn)處的特性。如,由實(shí)驗(yàn)或測(cè)量的方法得到函數(shù) 在互異點(diǎn) 處的數(shù)值 然后構(gòu)造一個(gè)函數(shù) 作為 的近似表達(dá)式,即使得 成為被插值函數(shù), 為插值函數(shù)( )yf x01,nx xx01,nyyy(

41、 )x( )yf x( )( )yf xx0011(), (), ()nnxyxyxy( )yf x( )x5.2.1 一維插值當(dāng)被插值函數(shù) 為一元函數(shù)時(shí),為一維插值。用interp1來實(shí)現(xiàn)。Vq=interp1(X,V,Xq,method):X為自變量取值;V為函數(shù)值或向量,其長(zhǎng)度必須與X保持一致;Xq為插值點(diǎn)向量或數(shù)組;method是字符串變量method=nearest:臨近點(diǎn)插值。插值點(diǎn)函數(shù)值的估計(jì)為與該插值點(diǎn)最近的數(shù)據(jù)點(diǎn)的函數(shù)值。method=linear:線性插值。根據(jù)相鄰數(shù)據(jù)點(diǎn)的線性函數(shù)估計(jì)落在該區(qū)域內(nèi)插值數(shù)據(jù)點(diǎn)的函數(shù)值。method=spline:三次樣條插值。在相鄰數(shù)據(jù)點(diǎn)間建

42、立三次多項(xiàng)式函數(shù),根據(jù)多項(xiàng)式函數(shù)確定插值數(shù)據(jù)點(diǎn)的函數(shù)值。method=pchip或cubic:立方插值。通過分段立方插值方法計(jì)算插值結(jié)果method=v5cubic:用matlab5版本中斷三次樣條插值( )yf x幾種插值法的比較:(1)臨近點(diǎn)插值方法的速度最快,但平滑性最差;(2)線性插值占用計(jì)算機(jī)內(nèi)存比臨近插值多,運(yùn)算時(shí)間也長(zhǎng);與臨近點(diǎn)插值不同,其結(jié)果是聯(lián)系的,但在頂點(diǎn)處的斜率會(huì)改變。(3)三次樣條插值方法的運(yùn)算時(shí)間最長(zhǎng),但內(nèi)存占用交立方插值少,其插值數(shù)據(jù)和導(dǎo)數(shù)都是連續(xù)的。三次樣條插值結(jié)果的平滑性最好,但如果輸入數(shù)據(jù)不一致或數(shù)據(jù)點(diǎn)過近,就可能出現(xiàn)很差的插值效果x=0:2*pi;y=sin

43、(x);xx=0:0.5:2*pi;yy=interp1(x,y,xx,nearest);ezplot(sin(x),0 2*pi);hold on;plot(xx,yy,r);hold onyy2=interp1(x,y,xx,linear);plot(xx,yy2,y);hold onyy3=interp1(x,y,xx,spline);plot(xx,yy3,g);5.2.2 二維插值當(dāng)被插值函數(shù) 為二元函數(shù)時(shí),為二維插值。用interp2Vq=interp2(X,Y,V,Xq,Yq,method):X,Y,V是具有相同大小的矩陣, 是數(shù)據(jù)點(diǎn) 上的函數(shù)值;Xq,Yq為待插值數(shù)據(jù)網(wǎng)格;me

44、thod是一字符串變量,表示不用的插值方法。method=nearest:臨近點(diǎn)插值。將插值點(diǎn)周圍4個(gè)數(shù)據(jù)點(diǎn)中離該插值點(diǎn)最近的數(shù)據(jù)點(diǎn)函數(shù)值作為該插值點(diǎn)的函數(shù)值的估計(jì)值。method=linear:雙線性插值(默認(rèn))。將插值點(diǎn)周圍4個(gè)數(shù)據(jù)點(diǎn)的函數(shù)值的線性組合作為插值點(diǎn)的函數(shù)值的估計(jì)值。method=spline:三次樣條插值。該方法計(jì)算效率高,得到的曲面光滑,( )yf x( , )V i j, ( , )X i jY i jmethod=cubic:雙立方插值。利用周圍的16個(gè)數(shù)據(jù)點(diǎn),相對(duì)于nearest和linear方法。需要消耗較多的內(nèi)存和計(jì)算時(shí)間,故而計(jì)算效率不高,當(dāng)?shù)玫降那娓饣琗,

45、Y=meshgrid(-3:0.25:3);Z=peaks(X,Y); %計(jì)算已知點(diǎn)的函數(shù)值X1,Y1=meshgrid(-3:0.125:3); %產(chǎn)生更精密的插值點(diǎn)Z1=interp2(X,Y,Z,X1,Y1);mesh(X,Y,Z);hold on;mesh(X1,Y1,Z1+20);axis(-3 3 -3 3 -5 25);5.3 函數(shù)的極限limit(expr,x,a):當(dāng) 時(shí),對(duì)函數(shù)expr求極限limit(expr):默認(rèn)當(dāng) 時(shí),對(duì)函數(shù)expr求極限limit(expt,x,a,left):當(dāng) 時(shí),對(duì)函數(shù)expr求左極限Limit(expr,x,aright):當(dāng) 時(shí),對(duì)函數(shù)expr求右極限例:對(duì)數(shù)列 ,當(dāng)n趨于無窮大時(shí),求其極限。n=1:200;y=n./(3*n+1);figure;plot(n,y);syms x;f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論