




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1金融數(shù)值計(jì)算與應(yīng)用軟件 -MATLAB王王 輝輝 中央財(cái)經(jīng)大學(xué)金融學(xué)院中央財(cái)經(jīng)大學(xué)金融學(xué)院E-mail :Tel:136992212662第第2章章 MATLAB數(shù)值計(jì)算數(shù)值計(jì)算32.1 矩陣及向量運(yùn)算矩陣及向量運(yùn)算2.1.1 向量的建立及運(yùn)算向量的建立及運(yùn)算n向量的生成:向量的生成:(1 1)直接輸入:如)直接輸入:如a=1,2,5,3a=1,2,5,3(2 2)利用冒號(hào)表達(dá)式生成,如)利用冒號(hào)表達(dá)式生成,如b=2:2:10b=2:2:10(3 3)線性等份向量生成)線性等份向量生成 y=linspace(x1,x2,n),y=linspace(x1,x2,n),生成生成n n維向量,使維
2、向量,使 得得y(1)=x1,y(n)=x2y(1)=x1,y(n)=x2。n列向量列向量4向量的基本運(yùn)算向量的基本運(yùn)算(1)向量的加減:用向量的加減:用+ +、- -。同維向量才可以加、。同維向量才可以加、減。相應(yīng)元素加減。向量與數(shù)可以加、減。用減。相應(yīng)元素加減。向量與數(shù)可以加、減。用+ +、- -。數(shù)與向量的每個(gè)元素進(jìn)行作用。數(shù)與向量的每個(gè)元素進(jìn)行作用。(2)向量與數(shù)向量與數(shù)可以相乘(乘方),可以相乘(乘方),用用* *;向量與;向量與數(shù)可以相除,數(shù)可以相除,向量向量/ /數(shù)數(shù),數(shù)數(shù)././向量向量。(3)兩個(gè)向量點(diǎn)乘(點(diǎn)除),必須是同維向量?jī)蓚€(gè)向量點(diǎn)乘(點(diǎn)除),必須是同維向量。(4)向量
3、向量?jī)?nèi)積用內(nèi)積用dot(a,b)dot(a,b)。5向量的基本運(yùn)算的例子向量的基本運(yùn)算的例子例例2.1.1 2.1.1 向量的生成向量的生成x=1 2 3 4;x=1 2 3 4;y=0:1:15;y=0:1:15;z=linspace(1,100,6)z=linspace(1,100,6)例例2.1.2 2.1.2 向量的運(yùn)算向量的運(yùn)算x = 1 3 5 2; y = 2x = 1 3 5 2; y = 2* *x+1; x+1; z=x+y;w1=x./y;w2=x.z=x+y;w1=x./y;w2=x.* *y;w3=dot(x,y)y;w3=dot(x,y)6向量的基本運(yùn)算的例子向量的
4、基本運(yùn)算的例子例例.3:下表是邯鄲鋼鐵、:下表是邯鄲鋼鐵、STST東北高速、恒瑞東北高速、恒瑞醫(yī)藥和深達(dá)聲醫(yī)藥和深達(dá)聲20072007年年9 9月月1313日的收盤價(jià)及成交日的收盤價(jià)及成交量,計(jì)算其各自的成交金額及總成交額量,計(jì)算其各自的成交金額及總成交額。項(xiàng)目項(xiàng)目邯鄲鋼鐵邯鄲鋼鐵STST東北東北高速高速恒瑞醫(yī)藥恒瑞醫(yī)藥 深達(dá)聲深達(dá)聲收盤價(jià)收盤價(jià)/ /元元 8.566.5142.137.99成交量成交量/ /股股 863847009580900 91900027229007例例.3Price=8.56,6.51,42.13,7.99;Volume=8638470
5、0, 9580900, 919000, 2722900;Total1=Price.*VolumeTotal2=dot(Price, Volume)8向量編址向量編址n向量元素用下標(biāo)訪問(wèn),向量元素用下標(biāo)訪問(wèn),如如x(1)x(1)表示向量表示向量x x的第的第一個(gè)元素一個(gè)元素n向量元素可以成塊訪問(wèn)向量元素可以成塊訪問(wèn), ,如如x(1 3)x(1 3)例例 2.1.4 2.1.4 令向量令向量 x =(0.9501 0.2311 0.6068 x =(0.9501 0.2311 0.6068 0.4860 0.8913)0.4860 0.8913) (1)(1)尋訪數(shù)組尋訪數(shù)組x x的第三個(gè)元素的第
6、三個(gè)元素 (2)(2)尋訪數(shù)組尋訪數(shù)組x x的第一、二、五個(gè)元素組成的子數(shù)組的第一、二、五個(gè)元素組成的子數(shù)組 (3)(3)尋訪前三個(gè)元素組成的子數(shù)組尋訪前三個(gè)元素組成的子數(shù)組 (更多內(nèi)容參見(jiàn)講義)(更多內(nèi)容參見(jiàn)講義)9n查找滿足一定條件的向量元素查找滿足一定條件的向量元素例例 2.1.4 2.1.4 (續(xù))(續(xù)) 求由大于由大于0.50.5的元素構(gòu)成的子數(shù)組的元素構(gòu)成的子數(shù)組 x(find(x0.5)x(find(x0.5) n可以隨意更改、增加或刪除向量的元素可以隨意更改、增加或刪除向量的元素例例 2.1.4 2.1.4 (續(xù))(續(xù))把上例中把上例中x x的第三個(gè)元素重新賦值為的第三個(gè)元素重
7、新賦值為0 0 ;將;將x x的第的第1 1、4 4個(gè)元素都賦值為個(gè)元素都賦值為1 1;刪除;刪除x x的第的第2 2個(gè)元素個(gè)元素x(3) = 0 ;x(1 4)=1 1 ;x(2)= ;n不論是行向量或列向量,我們均可用相同的不論是行向量或列向量,我們均可用相同的函數(shù)找出其元素個(gè)數(shù)、最大值、最小值函數(shù)找出其元素個(gè)數(shù)、最大值、最小值10適用于向量的常用函數(shù)適用于向量的常用函數(shù) nmin(x):min(x): 向量向量x x的元素的最小值的元素的最小值 nmax(x):max(x): 向量向量x x的元素的最大值的元素的最大值 nmean(x):mean(x): 向量向量x x的元素的平均值的元
8、素的平均值 ,c,c語(yǔ)言中要用循環(huán)語(yǔ)言中要用循環(huán)nmedian(x):median(x): 向量向量x x的元素的中位數(shù)的元素的中位數(shù) nstd(x):std(x): 向量向量x x的元素的標(biāo)準(zhǔn)差的元素的標(biāo)準(zhǔn)差 ndiff(x):diff(x): 向量向量x x的相鄰元素的差的相鄰元素的差 nsort(x):sort(x): 對(duì)向量對(duì)向量x x的元素進(jìn)行的元素進(jìn)行排序排序(SortingSorting) nlength(x):length(x): 向量向量x x的元素個(gè)數(shù)的元素個(gè)數(shù) nnorm(x):norm(x): 向量向量x x的歐氏(的歐氏(EuclideanEuclidean)長(zhǎng)度)長(zhǎng)
9、度 nsum(x):sum(x): 向量向量x x的元素總和的元素總和 nprod(x):prod(x): 向量向量x x的元素總乘積的元素總乘積 11向量運(yùn)算的練習(xí)向量運(yùn)算的練習(xí)n例例.5:創(chuàng)建一個(gè)創(chuàng)建一個(gè)8 8維行(列)向量維行(列)向量x x。 (1 1)輸出其第)輸出其第2 2個(gè)元素個(gè)元素 (2 2)輸出其第)輸出其第1 1、3 3、5 5、7 7個(gè)元素個(gè)元素 (3 3)找出其小于零的元素并賦值為)找出其小于零的元素并賦值為1111 (4 4)找出該向量元素的最大值、最小值以及)找出該向量元素的最大值、最小值以及元素平均值和元素個(gè)數(shù)元素平均值和元素個(gè)數(shù) (5 5)求求l
10、nxlnx2 2122.1.2 矩陣的建立及運(yùn)算矩陣的建立及運(yùn)算 矩陣的建立矩陣的建立(1)直接輸入直接輸入: :如如:a=1,3,4;4,3,2.:a=1,3,4;4,3,2.(例(例.6)(2)大型矩陣一般創(chuàng)建大型矩陣一般創(chuàng)建M M文件,便于修改文件,便于修改 (i) (i) 啟動(dòng)有關(guān)編輯程序或啟動(dòng)有關(guān)編輯程序或MATLABMATLAB文本編輯器,并輸文本編輯器,并輸入待建矩陣:入待建矩陣:(ii) (ii) 把輸入的內(nèi)容以純文本方式存盤把輸入的內(nèi)容以純文本方式存盤( (設(shè)文件名為設(shè)文件名為mymatrix.m)mymatrix.m)。(iii) (iii) 在在MATLA
11、BMATLAB命令窗口中輸入命令窗口中輸入mymatrixmymatrix,即運(yùn)行,即運(yùn)行該該M M文件,就會(huì)自動(dòng)建立一個(gè)名為文件,就會(huì)自動(dòng)建立一個(gè)名為MYMATMYMAT的矩陣,可的矩陣,可供以后使用。供以后使用。13矩陣的生成矩陣的生成(二二)(3)多維數(shù)組的創(chuàng)建多維數(shù)組的創(chuàng)建函數(shù)函數(shù)cat,格式格式 A=cat(n,A1,A2,Am)說(shuō)明:說(shuō)明:n=1和和n=2時(shí)分別構(gòu)造時(shí)分別構(gòu)造A1;A2和和A1,A2,都是二維數(shù)組,而都是二維數(shù)組,而n=3時(shí)可以構(gòu)造出三維數(shù)組。時(shí)可以構(gòu)造出三維數(shù)組。例例2.1.7 A1=1,2,3;4,5,6;7,8,9;A2=A1;A3=A1-A2; A1=1,2
12、,3;4,5,6;7,8,9;A2=A1;A3=A1-A2; A4=cat(3,A1,A2,A3)A4=cat(3,A1,A2,A3)A4(:,:,1) = 1 2 3 4 5 6 7 8 9A4(:,:,2) = 1 4 7 2 5 8 3 6 9A4(:,:,3) = 0 -2 -4 2 0 -2 4 2 014特殊矩陣的生成特殊矩陣的生成單位矩陣:?jiǎn)挝痪仃嚕篹yeeye:產(chǎn)生單位矩陣。:產(chǎn)生單位矩陣??站仃嚕嚎站仃嚕篈=A=全零矩陣:全零矩陣:zeroszeros:產(chǎn)生全:產(chǎn)生全0 0矩陣矩陣( (零矩陣零矩陣) )。全全1 1矩陣:矩陣: onesones:產(chǎn)生全:產(chǎn)生全1 1矩陣矩陣
13、( (幺矩陣幺矩陣) )。隨機(jī)矩陣:隨機(jī)矩陣:randrand:產(chǎn)生:產(chǎn)生0 01 1間均勻分布的隨機(jī)矩陣。間均勻分布的隨機(jī)矩陣。randnrandn:產(chǎn)生均值為:產(chǎn)生均值為0 0,方差為,方差為1 1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣?yán)?.1.9 2.1.9 (1) (1) 建立一個(gè)建立一個(gè)3 33 3零矩陣。零矩陣。(2) (2) 建立一個(gè)建立一個(gè)3 32 2零矩陣。零矩陣。(3) (3) 設(shè)設(shè)A=1 2 3;4 5 6A=1 2 3;4 5 6,建立一個(gè)與矩陣,建立一個(gè)與矩陣A A同樣大小零矩陣。同樣大小零矩陣。15例例2.1.10 建立隨機(jī)矩陣建立隨機(jī)矩陣 (1) 在區(qū)間在
14、區(qū)間20,50內(nèi)均勻分布的內(nèi)均勻分布的5階隨機(jī)矩陣階隨機(jī)矩陣(2) 均值為均值為0.6、方差為方差為0.1的的5階正態(tài)分布隨機(jī)階正態(tài)分布隨機(jī)矩陣。矩陣。x=20+(50-20)*rand(5)x=unifrnd(20,50,5) y=0.6+sqrt(0.1)*randn(5) y=normrnd(0.6,0.1,5)16矩陣的合并和拆分矩陣的合并和拆分(一一)(1 1)建立大矩陣:)建立大矩陣:大矩陣可由方括號(hào)中的小矩陣或向大矩陣可由方括號(hào)中的小矩陣或向量建立起來(lái)。量建立起來(lái)。x=1:1:8;y=-10:1:-3;z=x;y(2 2)矩陣元素:)矩陣元素:通過(guò)下標(biāo)引用矩陣的元素,例如通過(guò)下標(biāo)
15、引用矩陣的元素,例如A(3,2)=200。采用矩陣元素的序號(hào)來(lái)引用矩陣元。采用矩陣元素的序號(hào)來(lái)引用矩陣元素。矩陣元素的序號(hào)就是相應(yīng)元素在內(nèi)存中的排列素。矩陣元素的序號(hào)就是相應(yīng)元素在內(nèi)存中的排列順序。在順序。在MATLAB中,矩陣元素按列存儲(chǔ),先第一中,矩陣元素按列存儲(chǔ),先第一列,再第二列,依次類推。矩陣元素列,再第二列,依次類推。矩陣元素A(i,j)的序號(hào)為的序號(hào)為(j-1)*m+i。例如例如A=1,2,3;4,5,6;A(3)=2。 17矩陣的合并和拆分矩陣的合并和拆分(二二)(3) 利用冒號(hào)表達(dá)式獲得子矩陣?yán)妹疤?hào)表達(dá)式獲得子矩陣 A(:,j)表示取表示取A矩陣的第矩陣的第j列全部元素;列
16、全部元素;A(i,:)表示表示A矩陣第矩陣第i行的全部元素;行的全部元素;A(i,j)表示取表示取A矩陣第矩陣第i行、行、第第j列的元素。列的元素。 A(i:i+m,:)表示取表示取A矩陣第矩陣第ii+m行的全部元素;行的全部元素;A(:,k:k+m)表示取表示取A矩陣第矩陣第kk+m列的全部元素,列的全部元素,A(i:i+m,k:k+m)表示取表示取A矩陣第矩陣第ii+m行內(nèi),并行內(nèi),并在第在第kk+m列中的所有元素。列中的所有元素。 18矩陣的合并和拆分矩陣的合并和拆分(三三)(4)在在MATLAB中,定義中,定義為空矩陣。給變量為空矩陣。給變量X賦空矩賦空矩陣的語(yǔ)句為陣的語(yǔ)句為X=。注意
17、,。注意,X=與與clear X不同,不同,clear是將是將X從工作空間中刪除,而空矩陣則存在于從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)為工作空間中,只是維數(shù)為0。reshape(A,m,n),它在矩陣總元素保持不變的前提,它在矩陣總元素保持不變的前提下,將矩陣下,將矩陣A重新排成重新排成mn的二維矩陣的二維矩陣。 A=rand(4), B=reshape(A,8,2)19矩陣的合并和拆分矩陣的合并和拆分(四四)例例2.1.11 (1)建立建立24均勻隨機(jī)矩陣均勻隨機(jī)矩陣x、 44單位矩單位矩陣陣y、 62全全4矩陣矩陣z;(2)將上述三個(gè)矩陣合并成一個(gè)矩陣將上述三個(gè)矩陣合并成
18、一個(gè)矩陣H;(3)分別用下標(biāo)法和序號(hào)法引用分別用下標(biāo)法和序號(hào)法引用H(4,2)和和H(2,6);(4)求求H的第的第3行和第行和第5列的元素;列的元素;(5)矩陣矩陣B表示由表示由H的第的第2行到第行到第6行且在第行且在第1列到第列到第4列列的元素組成的矩陣;的元素組成的矩陣;(6)將矩陣將矩陣H變?yōu)樽優(yōu)?9階矩陣,階矩陣,并令其第并令其第1行為空行為空.20例例2.1.11(續(xù))(續(xù))x=rand(2,4);y=eye(4);z=4*ones(6,2);H=x;y,zH(4,2),H(1*6+4)H(2,6),H(5*6+2)H(3,:),H(:,5)B=H(2:6,14)H=reshape
19、(H,4,9)H(1,:)=;H21矩陣分析(一)矩陣分析(一)對(duì)角陣對(duì)角陣l提取矩陣的對(duì)角線元素提取矩陣的對(duì)角線元素設(shè)設(shè)A為為mn矩陣,矩陣,diag(A)函數(shù)用于提取矩陣函數(shù)用于提取矩陣A主對(duì)主對(duì)角線元素,產(chǎn)生一個(gè)具有角線元素,產(chǎn)生一個(gè)具有min(m,n)個(gè)元素的列向量個(gè)元素的列向量ldiag(A)函數(shù)還有一種形式函數(shù)還有一種形式diag(A,k),其功能是提取,其功能是提取第第k條對(duì)角線條對(duì)角線的元素。的元素。l構(gòu)造對(duì)角矩陣構(gòu)造對(duì)角矩陣設(shè)設(shè)V為具有為具有m個(gè)元素的向量,個(gè)元素的向量,diag(V)將產(chǎn)生一個(gè)將產(chǎn)生一個(gè)mm對(duì)角矩陣,其主對(duì)角線元素即為向量對(duì)角矩陣,其主對(duì)角線元素即為向量V的
20、元素。的元素。diag(V)函數(shù)也有另一種形式函數(shù)也有另一種形式diag(V,k),其功能是產(chǎn),其功能是產(chǎn)生一個(gè)生一個(gè)nn(n=m+k)對(duì)角陣,其第對(duì)角陣,其第k條對(duì)角線的元條對(duì)角線的元素即為向量素即為向量V的元素。的元素。22矩陣分析例矩陣分析例2.1.12例例.12 先建立先建立5 55 5矩陣矩陣A A,然后將,然后將A A的第一行的第一行元素乘以元素乘以1 1,第二行乘以,第二行乘以2 2,第五行乘以,第五行乘以5 5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;1A=17,0,1,0,15;23,5,7,14,16;4,0,13,0
21、,22;10,12,19,21,3;.0,12,19,21,3;.11,18,25,2,19;11,18,25,2,19;D=diag(1:5);D=diag(1:5);D D* *A %A %用用D D左乘左乘A A,對(duì),對(duì)A A的每行乘的每行乘以一個(gè)指定常數(shù)以一個(gè)指定常數(shù)23矩陣分析(二)矩陣分析(二)三角陣三角陣l上三角矩陣上三角矩陣求矩陣求矩陣A A的上三角陣的的上三角陣的MATLABMATLAB函數(shù)是函數(shù)是triu(A)triu(A)。triu(A)triu(A)函數(shù)也有另一種形式函數(shù)也有另一種形式triu(A,k)triu(A,k),其功,其功能是求矩陣能是求矩陣A A的第的第k
22、k條對(duì)角線以上的元素。例如,條對(duì)角線以上的元素。例如,提取矩陣提取矩陣A A的第的第2 2條對(duì)角線以上的元素,形成新條對(duì)角線以上的元素,形成新的矩陣的矩陣B B。l下三角矩陣下三角矩陣在在MATLABMATLAB中,提取矩陣中,提取矩陣A A的下三角矩陣的函數(shù)是的下三角矩陣的函數(shù)是tril(A)tril(A)和和tril(A,k)tril(A,k),其用法與提取上三角矩,其用法與提取上三角矩陣的函數(shù)陣的函數(shù)triu(A)triu(A)和和triu(A,k)triu(A,k)完全相同完全相同。24矩陣分析(三)矩陣分析(三)l矩陣的轉(zhuǎn)置:矩陣的轉(zhuǎn)置:轉(zhuǎn)置運(yùn)算符是單撇號(hào)轉(zhuǎn)置運(yùn)算符是單撇號(hào)。 l矩陣
23、的逆:矩陣的逆: inv(A) l方陣的行列式:方陣的行列式:det(A)l矩陣的秩:矩陣的秩:rank(A)l矩陣的跡:矩陣的跡:矩陣的跡等于矩陣的對(duì)角線元素之和,也等于矩陣矩陣的跡等于矩陣的對(duì)角線元素之和,也等于矩陣的特征值之和。求矩陣的跡的函數(shù)是的特征值之和。求矩陣的跡的函數(shù)是trace(A)l矩陣的特征值與特征向量矩陣的特征值與特征向量 :計(jì)算矩陣計(jì)算矩陣A A的特征值和特征向的特征值和特征向量的函數(shù)是量的函數(shù)是eig(A)eig(A) (i) E=eig(A) (i) E=eig(A):求矩陣:求矩陣A A的全部特征值,構(gòu)成向量的全部特征值,構(gòu)成向量E E。(ii) V,D=eig(
24、A)(ii) V,D=eig(A):求矩陣:求矩陣A A的全部特征值,構(gòu)成對(duì)的全部特征值,構(gòu)成對(duì)角陣角陣D D,并求,并求A A的特征向量構(gòu)成的特征向量構(gòu)成V V的列向量。的列向量。252.2 MATLAB運(yùn)算運(yùn)算 n算術(shù)運(yùn)算算術(shù)運(yùn)算 注意函數(shù)的運(yùn)算作用于矩陣的所有元素注意函數(shù)的運(yùn)算作用于矩陣的所有元素 n關(guān)系運(yùn)算關(guān)系運(yùn)算n邏輯運(yùn)算邏輯運(yùn)算262.2.1算術(shù)運(yùn)算算術(shù)運(yùn)算nMATLAB的基本算術(shù)運(yùn)算的基本算術(shù)運(yùn)算:( (加加) )、( (減減) )、* *( (乘乘) )、/(/(右除右除) )、(左除左除) )、(乘方乘方) )。 在在MATLABMATLAB中,有兩種矩陣除法運(yùn)算:中,有兩種
25、矩陣除法運(yùn)算: 和和/ /,分別表示,分別表示左除和右除。如果左除和右除。如果A A陣是非陣是非奇異方陣奇異方陣,則,則ABAB和和B/AB/A運(yùn)運(yùn)算可以實(shí)現(xiàn)。算可以實(shí)現(xiàn)。ABAB等于等于inv(A)inv(A)* *B B,而,而B(niǎo)/AB/A等于等于B B* *inv(A)inv(A)。 n點(diǎn)運(yùn)算點(diǎn)運(yùn)算 :點(diǎn)運(yùn)算符有點(diǎn)運(yùn)算符有.*、./、.和和.。 兩矩陣兩矩陣進(jìn)行點(diǎn)運(yùn)算進(jìn)行點(diǎn)運(yùn)算是指它們的對(duì)應(yīng)元素進(jìn)行相關(guān)運(yùn)算,是指它們的對(duì)應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維參數(shù)相同要求兩矩陣的維參數(shù)相同。272.2.2關(guān)系運(yùn)算關(guān)系運(yùn)算 n關(guān)系運(yùn)算符:關(guān)系運(yùn)算符:(小于小于)、(大大于于)、=(大于或等于大于
26、或等于)、=(等于等于)、=(不等于不等于)。 n關(guān)系運(yùn)算符的運(yùn)算法則關(guān)系運(yùn)算符的運(yùn)算法則 :n當(dāng)兩個(gè)比較量是標(biāo)量時(shí),直接比較兩數(shù)的大小。當(dāng)兩個(gè)比較量是標(biāo)量時(shí),直接比較兩數(shù)的大小。n當(dāng)參與比較的量是兩個(gè)維數(shù)相同的矩陣時(shí),比較是當(dāng)參與比較的量是兩個(gè)維數(shù)相同的矩陣時(shí),比較是對(duì)兩矩陣相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)對(duì)兩矩陣相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行,并給出元素比較結(jié)果。進(jìn)行,并給出元素比較結(jié)果。 n當(dāng)參與比較的一個(gè)是標(biāo)量,而另一個(gè)是矩陣時(shí),則當(dāng)參與比較的一個(gè)是標(biāo)量,而另一個(gè)是矩陣時(shí),則把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)比較,并
27、給出元素比較結(jié)果個(gè)比較,并給出元素比較結(jié)果 28關(guān)系運(yùn)算的例子關(guān)系運(yùn)算的例子例例.1(1 1)令)令A(yù)=1:9, B=9-A ,輸出,輸出A A中元中元素大于素大于B B對(duì)應(yīng)元素的位置。對(duì)應(yīng)元素的位置。 find(AB)(2 2)產(chǎn)生)產(chǎn)生5 5階隨機(jī)方陣階隨機(jī)方陣A A,其元素為,其元素為10,9010,90區(qū)區(qū)間的隨機(jī)整數(shù),然后判斷間的隨機(jī)整數(shù),然后判斷A A的元素是否能被的元素是否能被3 3整除。整除。A=fix(90-10+1)*rand(5)+10) P=rem(A,3)=0 292.2.3邏輯運(yùn)算(一)邏輯運(yùn)算(一) n邏輯運(yùn)算符:邏輯運(yùn)算符:&(&
28、(與與) )、|(|(或或) )和和( (非非) )n邏輯運(yùn)算的運(yùn)算法則為:邏輯運(yùn)算的運(yùn)算法則為: (i) (i) 在邏輯運(yùn)算中,確認(rèn)非零元素為真,用在邏輯運(yùn)算中,確認(rèn)非零元素為真,用1 1表示,表示,零元素為假,用零元素為假,用0 0表示。表示。 (ii) (ii) 設(shè)參與邏輯運(yùn)算的是兩個(gè)標(biāo)量設(shè)參與邏輯運(yùn)算的是兩個(gè)標(biāo)量a a和和b b,那么,那么, a&b a,ba&b a,b全為非零時(shí),運(yùn)算結(jié)果為全為非零時(shí),運(yùn)算結(jié)果為1 1,否則為,否則為0 0。 a|b a,ba|b a,b中只要有一個(gè)非零,運(yùn)算結(jié)果為中只要有一個(gè)非零,運(yùn)算結(jié)果為1 1。 a a 當(dāng)當(dāng)a a是零時(shí),運(yùn)算結(jié)
29、果為是零時(shí),運(yùn)算結(jié)果為1 1;當(dāng);當(dāng)a a非零時(shí),運(yùn)非零時(shí),運(yùn) 算結(jié)果為算結(jié)果為0 0。 30邏輯運(yùn)算(二)邏輯運(yùn)算(二) (iii) (iii) 若參與邏輯運(yùn)算的是兩個(gè)同維矩陣,那么運(yùn)算將若參與邏輯運(yùn)算的是兩個(gè)同維矩陣,那么運(yùn)算將對(duì)矩陣相同位置上的元素按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)對(duì)矩陣相同位置上的元素按標(biāo)量規(guī)則逐個(gè)進(jìn)行。最終運(yùn)算結(jié)果是一個(gè)與原矩陣同維的矩陣,其元素由算結(jié)果是一個(gè)與原矩陣同維的矩陣,其元素由1 1或或0 0組成。組成。 (iv) (iv) 若參與邏輯運(yùn)算的一個(gè)是標(biāo)量,一個(gè)是矩陣,那么若參與邏輯運(yùn)算的一個(gè)是標(biāo)量,一個(gè)是矩陣,那么運(yùn)算將在標(biāo)量與矩陣中的每個(gè)元素之間按標(biāo)量規(guī)則逐個(gè)運(yùn)算將
30、在標(biāo)量與矩陣中的每個(gè)元素之間按標(biāo)量規(guī)則逐個(gè)進(jìn)行。進(jìn)行。 (v) (v) 邏輯非是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)則。邏輯非是單目運(yùn)算符,也服從矩陣運(yùn)算規(guī)則。 (vi) (vi) 在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算優(yōu)先級(jí)最高,在算術(shù)、關(guān)系、邏輯運(yùn)算中,算術(shù)運(yùn)算優(yōu)先級(jí)最高,邏輯運(yùn)算優(yōu)先級(jí)最低。邏輯運(yùn)算優(yōu)先級(jí)最低。 31邏輯運(yùn)算的例子邏輯運(yùn)算的例子 例例2.2.2 建立建立1 15050標(biāo)準(zhǔn)正態(tài)隨機(jī)矩陣標(biāo)準(zhǔn)正態(tài)隨機(jī)矩陣A A。(1)(1)找出找出A A中元素大于中元素大于-1-1且小于且小于1 1的元素的位置,的元素的位置,并輸出這些元素;并輸出這些元素; (2)(2)找出大于找出大于1.51.5或小于
31、或小于1.51.5的元素,并將這些元的元素,并將這些元素素刪除掉刪除掉。(給矩陣的元素賦空值)。(給矩陣的元素賦空值)例例.3邏輯函數(shù)的運(yùn)用示例。(見(jiàn)講義)邏輯函數(shù)的運(yùn)用示例。(見(jiàn)講義)322.32.3字符串、結(jié)構(gòu)數(shù)組與元胞數(shù)組字符串、結(jié)構(gòu)數(shù)組與元胞數(shù)組.1字符串字符串l在在MATLABMATLAB中,字符串是用單撇號(hào)括起來(lái)的字符中,字符串是用單撇號(hào)括起來(lái)的字符序列。序列。MATLABMATLAB將字符串當(dāng)作一個(gè)行向量,每個(gè)將字符串當(dāng)作一個(gè)行向量,每個(gè)元素對(duì)應(yīng)一個(gè)字符,其標(biāo)識(shí)方法和數(shù)值向量相元素對(duì)應(yīng)一個(gè)字符,其標(biāo)識(shí)方法和數(shù)值向量相同。也可以建立多行字符串矩陣。同
32、。也可以建立多行字符串矩陣。l字符串是以字符串是以ASCIIASCII碼形式存儲(chǔ)的。碼形式存儲(chǔ)的。absabs和和doubledouble函數(shù)都可以用來(lái)獲取字符串矩陣所對(duì)應(yīng)的函數(shù)都可以用來(lái)獲取字符串矩陣所對(duì)應(yīng)的ASCIIASCII碼數(shù)值矩陣。相反,碼數(shù)值矩陣。相反,charchar函數(shù)可以把函數(shù)可以把ASCIIASCII碼矩碼矩陣轉(zhuǎn)換為字符串矩陣。陣轉(zhuǎn)換為字符串矩陣。33 簡(jiǎn)單命令(一)簡(jiǎn)單命令(一)cleara=12345.6789class(a) a_s=size(a) b=S class(b) b_s=size(b)whos34 簡(jiǎn)單命令(二)簡(jiǎn)單命令(二)把把This is an ex
33、ample.This is an example. 賦值給變量賦值給變量a a,求,求a a的的元素個(gè)數(shù),并且將其轉(zhuǎn)化成元素個(gè)數(shù),并且將其轉(zhuǎn)化成ASCIIASCII碼,然后再碼,然后再轉(zhuǎn)化成字符串。轉(zhuǎn)化成字符串。a=This is an example. size(a) ascii_a=double(a)char(ascii_a) 35字符串的例子字符串的例子在在matlabmatlab中字符串看成數(shù)組,其元素的讀取類似中字符串看成數(shù)組,其元素的讀取類似與數(shù)組,注意在字符串中空格也是一個(gè)字符。與數(shù)組,注意在字符串中空格也是一個(gè)字符。例例2.3.1 2.3.1 建立一個(gè)字符串向量,然后對(duì)該向量建
34、立一個(gè)字符串向量,然后對(duì)該向量做如下處理:做如下處理:(1) (1) 取第取第1 15 5個(gè)字符組成的子字符串。個(gè)字符組成的子字符串。 (2) (2) 將字符串倒過(guò)來(lái)重新排列。將字符串倒過(guò)來(lái)重新排列。(3)(3)統(tǒng)計(jì)字符串中小寫字母的個(gè)數(shù)。統(tǒng)計(jì)字符串中小寫字母的個(gè)數(shù)。 (4)(4)將字符串中的小寫字母變成相應(yīng)的大寫字將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。母,其余字符不變。 36字符串的例子(續(xù))字符串的例子(續(xù))ch=ABc123d4e56Fg9;subch=ch(1:5) %取子字符串取子字符串revch=ch(end:-1:1) %將字符串倒排將字符串倒排k=find(ch
35、=a&ch=z); %找小寫字母找小寫字母的位置的位置ch(k)=ch(k)-(a-A); %將小寫字母變成將小寫字母變成相應(yīng)的大寫字母相應(yīng)的大寫字母char(ch) length(k) %統(tǒng)計(jì)小寫字母的個(gè)數(shù)統(tǒng)計(jì)小寫字母的個(gè)數(shù)37字符串矩陣字符串矩陣如同矩陣,字符串可以有多個(gè)行,但每行必須有如同矩陣,字符串可以有多個(gè)行,但每行必須有相同數(shù)目的列數(shù),因此要相同數(shù)目的列數(shù),因此要用空格使各行具有相用空格使各行具有相同的長(zhǎng)度同的長(zhǎng)度。在命令窗口輸入以下語(yǔ)句,并按在命令窗口輸入以下語(yǔ)句,并按enterenter鍵確認(rèn)鍵確認(rèn)ss=i am a girl; i am a boy bb=i am a
36、 girl i am a boy bb(2)cc=i am a girl; i am a boy38字符串的顯示字符串的顯示函數(shù)函數(shù)dispdisp允許不顯示變量名而顯示一個(gè)字符串允許不顯示變量名而顯示一個(gè)字符串disp(bb)disp(bb)39Eval命令命令 n與字符串有關(guān)的另一個(gè)重要函數(shù)是與字符串有關(guān)的另一個(gè)重要函數(shù)是evaleval,其調(diào)用格,其調(diào)用格式為:式為:eval(t)eval(t)其中其中t t為字符串。為字符串。n它的作用是把字符串的內(nèi)容作為對(duì)應(yīng)的它的作用是把字符串的內(nèi)容作為對(duì)應(yīng)的MATLABMATLAB語(yǔ)句語(yǔ)句來(lái)執(zhí)行。來(lái)執(zhí)行。nB=rand(2,4) B_str=mat
37、2str(B,4) Expression=exp(-,B_str,);eval(Expression) 402.3.2元胞數(shù)組和結(jié)構(gòu)數(shù)組元胞數(shù)組和結(jié)構(gòu)數(shù)組 元胞數(shù)組元胞數(shù)組元胞數(shù)組的建立元胞數(shù)組的建立l使用大括號(hào),使用大括號(hào), ,就象用中括號(hào),就象用中括號(hào) 來(lái)創(chuàng)建數(shù)字矩陣一樣;來(lái)創(chuàng)建數(shù)字矩陣一樣;l對(duì)元胞進(jìn)行逐一賦值,稱為元胞賦值;對(duì)元胞進(jìn)行逐一賦值,稱為元胞賦值;l創(chuàng)建一個(gè)大小合適的空矩陣。矩陣中所有的創(chuàng)建一個(gè)大小合適的空矩陣。矩陣中所有的行必須要有相同的元胞數(shù)。行必須要有相同的元胞數(shù)。元胞數(shù)組的顯示:元胞數(shù)組的顯示:celldisp和和cellplot41元胞數(shù)組的例子元胞數(shù)組的例子(一一
38、) 例例2.3.2 R1=reshape(1:9,3,3);R2=1+2i;R3=This is an example;R4=rand(4);RR1=R1,R2,R3,R4cellplot(RR1)RR21,1=R1, RR21,2=R2,RR21,3=R3, RR21,4=R4,42元胞數(shù)組的例子(二)元胞數(shù)組的例子(二) 要?jiǎng)?chuàng)建一個(gè)要?jiǎng)?chuàng)建一個(gè)2 24 4的空元胞矩陣,可以使用命令:的空元胞矩陣,可以使用命令:cell(2,4)cell(2,4)例例2.3.3 元胞數(shù)組的擴(kuò)充元胞數(shù)組的擴(kuò)充 C=cell(2); C(:,1)=char(Another,text string);10:-1:1
39、 C_str=char(這是這是,元胞數(shù)組創(chuàng)建算例元胞數(shù)組創(chuàng)建算例 1); R=reshape(1:9,3,3); Cn=1+2i; S_sym=sym(sin(-3*t)*exp(-t); A(1,1)=C_str;A(1,2)=R;A(2,1)=Cn;A(2,2)=S_sym; AC=A C ;A_C=A;C 43元胞數(shù)組的例子(三)元胞數(shù)組的例子(三) 例例2.3.3續(xù)續(xù) 元胞數(shù)組的收縮和重組。元胞數(shù)組的收縮和重組。(1)元胞數(shù)組的收縮)元胞數(shù)組的收縮A_C(3,:)=(2)把)把A_C重組成元胞數(shù)組重組成元胞數(shù)組R_A_CR_A_C=reshape(A_C,2,3) 44元胞數(shù)組內(nèi)容的
40、調(diào)取元胞數(shù)組內(nèi)容的調(diào)取例例2.3.4 元胞數(shù)組內(nèi)容的調(diào)取示例。元胞數(shù)組內(nèi)容的調(diào)取示例。(1)取一個(gè)元胞:)取一個(gè)元胞:f1=R_A_C(1,3)%使用圓括號(hào)尋訪得到的是元胞,而不僅是內(nèi)容。使用圓括號(hào)尋訪得到的是元胞,而不僅是內(nèi)容。 class(f1) (2)取一個(gè)元胞的內(nèi)容:)取一個(gè)元胞的內(nèi)容:f2=R_A_C1,3 %用花括號(hào)尋訪取得內(nèi)容用花括號(hào)尋訪取得內(nèi)容 class(f2)(3)取元胞內(nèi)的子數(shù)組)取元胞內(nèi)的子數(shù)組f3=R_A_C1,1(:,1 2 5 6)%注意三種括號(hào)的不同用途注意三種括號(hào)的不同用途%取第取第1行第行第1列元胞內(nèi)容中的第列元胞內(nèi)容中的第1、2、5、6列。列。 (4)同時(shí)
41、調(diào)取多個(gè)元胞內(nèi)容)同時(shí)調(diào)取多個(gè)元胞內(nèi)容f4,f5,f6=deal(R_A_C1,3,4)%取三個(gè)元胞取三個(gè)元胞內(nèi)容,賦值給三個(gè)變量?jī)?nèi)容,賦值給三個(gè)變量 45元胞數(shù)組與數(shù)值型數(shù)組的轉(zhuǎn)化元胞數(shù)組與數(shù)值型數(shù)組的轉(zhuǎn)化 cell2matC = 1 2 3 4; 5; 9 6 7 8; 10 11 12M = cell2mat(C)M = 1 2 3 4 5 6 7 8 9 10 11 12num2cellnum2cell(A,2)num2cell(A,1 3)A=magic(4)B=num2cell(A,2)46結(jié)構(gòu)體數(shù)組的直接創(chuàng)建法及顯示結(jié)構(gòu)體數(shù)組的直接創(chuàng)建法及顯示 結(jié)構(gòu)數(shù)組的元素可以是不同的數(shù)據(jù)類型
42、,它能結(jié)構(gòu)數(shù)組的元素可以是不同的數(shù)據(jù)類型,它能將一組具有不同屬性的數(shù)據(jù)納入到一個(gè)統(tǒng)一將一組具有不同屬性的數(shù)據(jù)納入到一個(gè)統(tǒng)一的變量名下進(jìn)行管理。建立一個(gè)結(jié)構(gòu)數(shù)組可的變量名下進(jìn)行管理。建立一個(gè)結(jié)構(gòu)數(shù)組可采用給結(jié)構(gòu)成員賦值的辦法。采用給結(jié)構(gòu)成員賦值的辦法。具體格式為:具體格式為:結(jié)構(gòu)矩陣名結(jié)構(gòu)矩陣名. .成員名成員名= =表達(dá)式表達(dá)式其中表達(dá)式應(yīng)理解為矩陣表達(dá)式其中表達(dá)式應(yīng)理解為矩陣表達(dá)式 47結(jié)構(gòu)體數(shù)組的直接創(chuàng)建法結(jié)構(gòu)體數(shù)組的直接創(chuàng)建法及顯示的例子及顯示的例子 例例2.3.5 本例通過(guò)溫室數(shù)據(jù)(包括溫室名、容積、溫本例通過(guò)溫室數(shù)據(jù)(包括溫室名、容積、溫度、濕度等)演示一維結(jié)構(gòu)體數(shù)組的創(chuàng)建和顯示。度
43、、濕度等)演示一維結(jié)構(gòu)體數(shù)組的創(chuàng)建和顯示。(1)green_=一號(hào)房一號(hào)房;green_house.volume=2000立方米立方米;green_house.parameter.temperature=31.2 30.4 31.6 28.7 29.7 31.1 30.9 29.6;green_house.parameter.humidity=62.1 59.5 57.7 61.5 62.0 61.9 59.2 57.5;(2)顯示顯示“結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組”結(jié)構(gòu)和內(nèi)容結(jié)構(gòu)和內(nèi)容green_house ;green_house.parameter ;48結(jié)構(gòu)體數(shù)組的直接創(chuàng)建
44、法結(jié)構(gòu)體數(shù)組的直接創(chuàng)建法及顯示的例子及顯示的例子 (續(xù))(續(xù)) 例例2.3.6 本例演示結(jié)構(gòu)體數(shù)組的創(chuàng)建和顯示,本例演示結(jié)構(gòu)體數(shù)組的創(chuàng)建和顯示,并利用結(jié)構(gòu)體數(shù)組保存一個(gè)溫室群的數(shù)據(jù)。并利用結(jié)構(gòu)體數(shù)組保存一個(gè)溫室群的數(shù)據(jù)。本例的運(yùn)行以例本例的運(yùn)行以例2.3.5為先導(dǎo)為先導(dǎo)。green_house(2,3).name=六號(hào)房六號(hào)房;green_house green_house(2,3)green_house(1,1) 49利用構(gòu)造函數(shù)創(chuàng)建結(jié)構(gòu)體數(shù)組利用構(gòu)造函數(shù)創(chuàng)建結(jié)構(gòu)體數(shù)組例例2.3.7 利用構(gòu)造函數(shù)利用構(gòu)造函數(shù)struct,建立溫室群的,建立溫室群的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)。a=cell(2,3);gr
45、een_house_1=struct(name,a,volume,a,parameter,a(1,2)green_house_2=struct(name,a,volume,parameter,) green_hopuse_3(2,3)=struct(name,volume,parameter,) 50結(jié)構(gòu)成員的修改結(jié)構(gòu)成員的修改 n增加結(jié)構(gòu)成員:增加結(jié)構(gòu)成員:例如要給結(jié)構(gòu)數(shù)組例如要給結(jié)構(gòu)數(shù)組a增加一個(gè)增加一個(gè)成員成員x4,可給可給a中任意一個(gè)元素增加成員中任意一個(gè)元素增加成員x4:a(1).x4=410075;但其他成員均為空矩陣,可以使用賦值語(yǔ)句但其他成員均為空矩陣,可以使用賦值語(yǔ)句給它賦確
46、定的值。給它賦確定的值。要?jiǎng)h除結(jié)構(gòu)的成員,則可以使用要?jiǎng)h除結(jié)構(gòu)的成員,則可以使用rmfield函數(shù)函數(shù)來(lái)完成。例如,刪除成員來(lái)完成。例如,刪除成員x4:a=rmfield(a,x4); 512.4程序控制結(jié)構(gòu)與函數(shù)程序控制結(jié)構(gòu)與函數(shù)2.4.1M文件的建立文件的建立n建立新的建立新的M文件有文件有3種方法種方法: (1) 菜單操作。從菜單操作。從MATLAB主窗口的主窗口的File菜菜單中選擇單中選擇New菜單項(xiàng),再選擇菜單項(xiàng),再選擇M-file命令命令. . (2) 命令操作。在命令操作。在MATLAB命令窗口輸入命命令窗口輸入命令令edit。 (3) 命令按鈕操作。單擊命令按鈕操作。單擊MA
47、TLAB主主窗口工窗口工具欄上的具欄上的New M-File命令按鈕。命令按鈕。52建立建立M文件的例子文件的例子例例2.4.1 分別建立命令文件和函數(shù)文件,將華分別建立命令文件和函數(shù)文件,將華氏溫度氏溫度f(wàn)轉(zhuǎn)換為攝氏溫度轉(zhuǎn)換為攝氏溫度c,建立命令文件并,建立命令文件并以文件名以文件名f2c.m存盤。存盤。clear; %清除工作空間中的變量清除工作空間中的變量f=input(Input Fahrenheit temperature:);c=5*(f-32)/953建立建立M文件的例子(續(xù))文件的例子(續(xù))首先建立函數(shù)文件首先建立函數(shù)文件f2c.m:function c=f2c(f)c=5*(
48、f-32)/9然后在然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。的命令窗口調(diào)用該函數(shù)文件。clear;y=input(Input Fahrenheit temperature:);x=f2c(y)54M文件的打開(kāi)文件的打開(kāi)n打開(kāi)新的打開(kāi)新的M文件有文件有3種方法種方法: (1) 菜單操作。從菜單操作。從MATLAB主窗口的主窗口的File菜單中菜單中選擇選擇Open命令,則屏幕出現(xiàn)命令,則屏幕出現(xiàn)Open對(duì)話框,在對(duì)話框,在Open對(duì)話框中選中所需打開(kāi)的對(duì)話框中選中所需打開(kāi)的M文件。文件。 (2) 命令操作。在命令操作。在MATLAB命令窗口輸入命令:命令窗口輸入命令:edit 文件名,則打開(kāi)
49、指定的文件名,則打開(kāi)指定的M文件。文件。 (3) 命令按鈕操作。單擊命令按鈕操作。單擊MATLAB主窗口工具欄主窗口工具欄上的上的Open File命令按鈕,再?gòu)棾龅膶?duì)話框中命令按鈕,再?gòu)棾龅膶?duì)話框中選擇所需打開(kāi)的選擇所需打開(kāi)的M文件。文件。 55程序控制結(jié)構(gòu)程序控制結(jié)構(gòu) n順序結(jié)構(gòu)順序結(jié)構(gòu) n選擇結(jié)構(gòu)選擇結(jié)構(gòu) n循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 56順序結(jié)構(gòu)順序結(jié)構(gòu) n(i) 數(shù)據(jù)的輸入數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來(lái)進(jìn)行,該函函數(shù)來(lái)進(jìn)行,該函數(shù)的調(diào)用格式為:數(shù)的調(diào)用格式為: A=input(提示信息,選項(xiàng)提示信息,選項(xiàng));其中提示信息為一個(gè)字符串,用于提示用戶
50、輸入什么其中提示信息為一個(gè)字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。樣的數(shù)據(jù)。n(ii) 數(shù)據(jù)的輸出數(shù)據(jù)的輸出nMATLAB提供的命令窗口輸出函數(shù)主要有提供的命令窗口輸出函數(shù)主要有disp函數(shù),函數(shù),其調(diào)用格式為其調(diào)用格式為n disp(輸出項(xiàng)輸出項(xiàng))n其中輸出項(xiàng)既可以為字符串,也可以為矩陣。其中輸出項(xiàng)既可以為字符串,也可以為矩陣。 57數(shù)據(jù)輸入輸出的例子數(shù)據(jù)輸入輸出的例子n如果在如果在input函數(shù)調(diào)用時(shí)采用函數(shù)調(diào)用時(shí)采用s選項(xiàng),則允許選項(xiàng),則允許用戶輸入一個(gè)字符串。用戶輸入一個(gè)字符串。例如,想輸入一例如,想輸入一個(gè)人的姓名,可采用命令:個(gè)人的姓名,可采用命令:xm=input(Whats yo
51、ur name?,s);n例例2.4.2 輸入輸入x,y的值,并將它們的值互換后的值,并將它們的值互換后輸出。輸出。x=input(Input x please.);y=input(Input y please.); z=x;x=y;y=z;disp(x);disp(y);58例例2.4.3 求一元二次方程求一元二次方程ax2 +bx+c=0的根。的根。程序如下:程序如下:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x
52、2=,num2str(x(2)59程序的暫停程序的暫停n暫停程序的執(zhí)行可以使用暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)函數(shù),其調(diào)用格式為:用格式為: pause(延遲秒數(shù)延遲秒數(shù))n 如果省略延遲時(shí)間,直接使用如果省略延遲時(shí)間,直接使用pause,則將,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。行。n若要強(qiáng)行中止程序的運(yùn)行可使用若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。命令。60選擇結(jié)構(gòu)選擇結(jié)構(gòu) (i) if語(yǔ)句語(yǔ)句(ii) 雙分支雙分支if語(yǔ)句語(yǔ)句(iii) 多分支多分支if語(yǔ)句語(yǔ)句 (iv) switch語(yǔ)句語(yǔ)句(v) try語(yǔ)句語(yǔ)句 61單
53、分支單分支if語(yǔ)句語(yǔ)句 if 條件條件 語(yǔ)句組語(yǔ)句組 end當(dāng)條件成立時(shí),則執(zhí)行語(yǔ)句組,執(zhí)行完之后繼當(dāng)條件成立時(shí),則執(zhí)行語(yǔ)句組,執(zhí)行完之后繼續(xù)執(zhí)行續(xù)執(zhí)行if語(yǔ)句的后繼語(yǔ)句,若條件不成立,則語(yǔ)句的后繼語(yǔ)句,若條件不成立,則直接執(zhí)行直接執(zhí)行if語(yǔ)句的后繼語(yǔ)句。語(yǔ)句的后繼語(yǔ)句。62雙分支雙分支if語(yǔ)句語(yǔ)句 if 條件條件 語(yǔ)句組語(yǔ)句組1 else 語(yǔ)句組語(yǔ)句組2 end當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組1,否則執(zhí)行語(yǔ)句組,否則執(zhí)行語(yǔ)句組2,語(yǔ)句組,語(yǔ)句組1或語(yǔ)句組或語(yǔ)句組2執(zhí)行后,再執(zhí)行執(zhí)行后,再執(zhí)行if語(yǔ)句的語(yǔ)句的后繼語(yǔ)句。后繼語(yǔ)句。 條件語(yǔ)句組語(yǔ)句組1語(yǔ)句組2是否63例例2.4.4
54、 計(jì)算分段函數(shù)的值計(jì)算分段函數(shù)的值x=input(請(qǐng)輸入請(qǐng)輸入x的值的值:);if x=A & c=a& c=0& c=9n disp(abs(c)-abs(0);nelsen disp(c);nend67switch語(yǔ)句語(yǔ)句 n switch語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)句,語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)句,其語(yǔ)句格式為:其語(yǔ)句格式為: switch 表達(dá)式表達(dá)式 case 表達(dá)式表達(dá)式1 語(yǔ)句組語(yǔ)句組1 case 表達(dá)式表達(dá)式2 語(yǔ)句組語(yǔ)句組2 case 表達(dá)式表達(dá)式m 語(yǔ)句組語(yǔ)句組m otherwise 語(yǔ)句組語(yǔ)句組n end程序的執(zhí)行程序
55、的執(zhí)行結(jié)果與結(jié)果與casecase語(yǔ)句語(yǔ)句的次序無(wú)的次序無(wú)關(guān)關(guān)68switch語(yǔ)句的例子語(yǔ)句的例子例例2.4.6 某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下準(zhǔn)如下(商品價(jià)格用商品價(jià)格用price來(lái)表示來(lái)表示): price200 沒(méi)有折扣沒(méi)有折扣 200price500 3%折扣折扣 500price1000 5%折扣折扣 1000price2500 8%折扣折扣 2500price5000 10%折扣折扣 5000price 14%折扣折扣輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。69switch語(yǔ)句例子的程序語(yǔ)句
56、例子的程序price=input(請(qǐng)輸入商品價(jià)格請(qǐng)輸入商品價(jià)格);switch fix(price/100) case 0,1 %價(jià)格小于價(jià)格小于200 rate=0; case 2,3,4 %價(jià)格大于等于價(jià)格大于等于200但小于但小于500 rate=3/100; case num2cell(5:9) %價(jià)格大于等于價(jià)格大于等于500但小于但小于1000 rate=5/100; case num2cell(10:24) %價(jià)格大于等于價(jià)格大于等于1000但小于但小于2500 rate=8/100; case num2cell(25:49) %價(jià)格大于等于價(jià)格大于等于2500但小于但小于500
57、0 rate=10/100; otherwise %價(jià)格大于等于價(jià)格大于等于5000 rate=14/100;endprice=price*(1-rate) %輸出商品實(shí)際銷售價(jià)格輸出商品實(shí)際銷售價(jià)格70clear;mypri=input(the price of the goods);switch 1 case mypri=200&mypri=500&mypri=1000&mypri=2500&mypriii在s1和s3之間?循環(huán)體語(yǔ)句組i+s2-i是否結(jié)束循環(huán)76簡(jiǎn)單命令簡(jiǎn)單命令nclear;na=zeros(1,10);nfor i=1:10n a(i)=
58、i2;n i=20;nenda=(1:10).277例例2.4.8 一個(gè)三位正整數(shù)各位數(shù)字的立方和等一個(gè)三位正整數(shù)各位數(shù)字的立方和等 于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。全部水仙花數(shù)。for m=100:999 m1=fix(m/100); %求百位數(shù)字求百位數(shù)字 m2=rem(fix(m/10),10); %求十位數(shù)字求十位數(shù)字 m3=rem(m,10); %求個(gè)位數(shù)字求個(gè)位數(shù)字 if m=m13+m23+m33 disp(m) endend78例例2.4.9 已知已知 ,當(dāng),當(dāng)n=100時(shí),求時(shí),求y=1+1/3+1/(2n-1)的值。的值。y
59、=0;n=100;for i=1:n y=y+1/(2*i-1);endy在實(shí)際在實(shí)際MATLABMATLAB編程中,編程中,采用循環(huán)語(yǔ)句會(huì)降低其采用循環(huán)語(yǔ)句會(huì)降低其執(zhí)行速度,所以前面的執(zhí)行速度,所以前面的程序通常由下面的程序程序通常由下面的程序來(lái)代替:來(lái)代替:n=100;i=1:2:2*n-1;y=sum(1./i);y79for語(yǔ)句更一般的格式語(yǔ)句更一般的格式 for 循環(huán)變量循環(huán)變量=矩陣表達(dá)式矩陣表達(dá)式 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句 end執(zhí)行過(guò)程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)執(zhí)行過(guò)程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語(yǔ)句,直至各列元素處理完畢,循環(huán)的次數(shù)為行循環(huán)體
60、語(yǔ)句,直至各列元素處理完畢,循環(huán)的次數(shù)為矩陣的列數(shù)。矩陣的列數(shù)。例例2.4.10 寫出下列程序的執(zhí)行結(jié)果。寫出下列程序的執(zhí)行結(jié)果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; end disp(s);80for語(yǔ)句注意(一)語(yǔ)句注意(一)nFor循環(huán)不能用循環(huán)不能用For循環(huán)內(nèi)重新賦值循環(huán)變量來(lái)循環(huán)內(nèi)重新賦值循環(huán)變量來(lái)終止。終止。 for n=1:10 x(n)=sin(n*pi/10); n=10;%這一句沒(méi)有作用這一句沒(méi)有作用 end81for語(yǔ)句注意(二)語(yǔ)句注意(二)n在在For循環(huán)內(nèi)接受任何有效的循環(huán)內(nèi)接受任何有效的MATLAB數(shù)組。數(shù)組。data=3 9 45 6; 7 16 -1 5data
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年儲(chǔ)能技術(shù)多元化在儲(chǔ)能電站建設(shè)中的安全防護(hù)技術(shù)應(yīng)用報(bào)告
- 北京科技大學(xué)天津?qū)W院《中外民族音樂(lè)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年保險(xiǎn)行業(yè)數(shù)字化理賠服務(wù)與保險(xiǎn)理賠流程再造案例報(bào)告
- 2025年保險(xiǎn)理賠數(shù)字化服務(wù)與客戶體驗(yàn)設(shè)計(jì)優(yōu)化報(bào)告
- 北京交通運(yùn)輸職業(yè)學(xué)院《微積分C(2)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年項(xiàng)目委托協(xié)議書
- 2025年委托實(shí)施協(xié)議
- 保山職業(yè)學(xué)院《法學(xué)專業(yè)外語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 白城醫(yī)學(xué)高等??茖W(xué)校《中國(guó)傳統(tǒng)體育養(yǎng)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 鐵合金行業(yè)區(qū)域市場(chǎng)創(chuàng)新驅(qū)動(dòng)力研究-洞察闡釋
- 2025《學(xué)前教育法》宣傳月培訓(xùn)含講稿
- 平行線新初一在線英語(yǔ)暑期分班測(cè)(劍橋think體系)測(cè)試題
- 卡通風(fēng)青春畢業(yè)季PPT模板課件
- 心電監(jiān)護(hù)課件精品PPT課件
- 具有車架結(jié)構(gòu)車輛的怠速震動(dòng)分析外文文獻(xiàn)翻譯、中英文翻譯
- 上公司人力資源管理制度非常全面
- 小學(xué)數(shù)學(xué)命題研究
- summer-vibe-的中英歌詞
- 天津友發(fā)鋼管集團(tuán)有限公司鋼管
- 水工建筑物水閘課程設(shè)計(jì)
- 七年級(jí)英語(yǔ)知識(shí)競(jìng)賽
評(píng)論
0/150
提交評(píng)論