Matlab筆記學(xué)習(xí)知識(shí)_第1頁(yè)
Matlab筆記學(xué)習(xí)知識(shí)_第2頁(yè)
Matlab筆記學(xué)習(xí)知識(shí)_第3頁(yè)
Matlab筆記學(xué)習(xí)知識(shí)_第4頁(yè)
Matlab筆記學(xué)習(xí)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(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筆記 用于取整的函數(shù)有fix、floor、ceil、round,要注意它們的區(qū)別,Ceil向正無(wú)窮大方向取整,floor向負(fù)無(wú)窮大方向取整, round向最接近的整數(shù)取整 fix負(fù)數(shù)向下取整、整數(shù)向上取整rem與mod函數(shù)的區(qū)別。rem(x,y)和mod(x,y)要求x,y必須為相同大小的實(shí)矩陣或?yàn)闃?biāo)量。2、數(shù)據(jù)輸出時(shí)用戶可以用format命令設(shè)置或改變數(shù)據(jù)輸出格式。format命令的格式為: format 格式符 其中格式符決定數(shù)據(jù)的輸出格式。3、linspace(a,b,n)其中a和b是生成向量的第一個(gè)和最后一個(gè)元素,n是元素總數(shù)。4、在MATLAB中,矩陣元素按列存儲(chǔ),先第一

2、列,再第二列,依次類推。例如A=1,2,3;4,5,6;A(3)ans = 2顯然,序號(hào)(Index)與下標(biāo)(Subscript )是一一對(duì)應(yīng)的,以mn矩陣A為例,矩陣元素A(i,j)的序號(hào)為(j-1)*m+i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得。(1) 建立矩陣A。A=4,-65,-54,0,6;56,0,67,-45,0(2) 找出大于4的元素的位置。find(A4) 結(jié)果是索引i,j=ind2sub(size(A),find(A4) 將索引轉(zhuǎn)化為下標(biāo)5、常用的產(chǎn)生通用特殊矩陣的函數(shù)有:zeros:產(chǎn)生全0矩陣(零矩陣)。(1) 建立一個(gè)33零矩陣。zeros(3

3、),(2) 建立一個(gè)32零矩陣。zeros(3,2)ones:產(chǎn)生全1矩陣(幺矩陣)。eye:產(chǎn)生單位矩陣。rand:產(chǎn)生01間均勻分布的隨機(jī)矩陣。randn:產(chǎn)生均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)矩陣。例:(1)在區(qū)間20,50內(nèi)均勻分布的5階隨機(jī)矩陣。x=20+(50-20)*rand(5) (2)均值為0.6、方差為0.1的5階正態(tài)分布隨機(jī)矩陣。y=0.6+sqrt(0.1)*randn(5)6、reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。7、pascal(n)生成一個(gè)n階帕斯卡矩陣?yán)呵?x+y)5的展開式。在MATLAB命令窗口,輸

4、入命令:pascal(6)矩陣次對(duì)角線上的元素1,5,10,10,5,1即為展開式的系數(shù)。8、(1) 提取矩陣的對(duì)角線元素設(shè)A為mn矩陣,diag(A)函數(shù)用于提取矩陣A主對(duì)角線元素,產(chǎn)生一個(gè)具有min(m,n)個(gè)元素的列向量。diag(A)函數(shù)還有一種形式diag(A,k),其功能是提取第k條對(duì)角線的元素。(2) 構(gòu)造對(duì)角矩陣設(shè)V為具有m個(gè)元素的向量,diag(V)將產(chǎn)生一個(gè)mm對(duì)角矩陣,其主對(duì)角線元素即為向量V的元素。diag(V)函數(shù)也有另一種形式diag(V,k),其功能是產(chǎn)生一個(gè)nn(n=m+)對(duì)角陣,其第k條對(duì)角線的元素即為向量V的元素。9、(1) 上三角矩陣函數(shù)triu(A)求矩

5、陣A的上三角陣。triu(A,k)是求矩陣A的第k條對(duì)角線以上的元素;(2) 下三角矩陣tril(A)提取矩陣A的下三角矩陣。tril(A,k) 是求矩陣A的第k條對(duì)角線以下的元素;(3)矩陣的轉(zhuǎn)置 轉(zhuǎn)置運(yùn)算符是單撇號(hào)();(4)矩陣的旋轉(zhuǎn) rot90(A,k)將矩陣A旋轉(zhuǎn)90的k倍,當(dāng)k為1時(shí)可省略;(5)矩陣的左右翻轉(zhuǎn) fliplr(A); fliplr(A)rot90(A,2)(6)矩陣的上下翻轉(zhuǎn) flipud(A);(7)矩陣的逆 方陣A的逆矩陣可調(diào)用函數(shù)inv(A);(8)求方陣A所對(duì)應(yīng)的行列式的值的函數(shù)是det(A);(9)矩陣的秩 求矩陣秩的函數(shù)是rank(A);(10)矩陣的跡

6、 求矩陣的跡的函數(shù)是trace(A)。10、建立一個(gè)字符串向量,然后對(duì)該向量做如下處理:ch=ABc123d4e56Fg9;subch=ch(1:5)%取子字符串revch=ch(end:-1:1)%將字符串倒排k=find(ch=a&ch A=1:1000; B=A(isprime(A)結(jié)果為1000以內(nèi)的所有質(zhì)數(shù).13. 匪名函數(shù)的定義(版本Matlab7.0)a=2;b=3;f = (x,y) a*x.2 + b*y.2 ; f(2,2)ans =20 14.gcd()求取兩個(gè)整數(shù)的最大公約數(shù),lcm()求取最小公倍數(shù)數(shù)據(jù)插值1一維數(shù)據(jù)插值在MATLAB中,實(shí)現(xiàn)這些插值的函數(shù)是inter

7、p1,其調(diào)用格式為:Y1=interp1(X,Y,X1,method)函數(shù)根據(jù)X,Y的值,計(jì)算函數(shù)在X1處的值。X,Y是兩個(gè)等長(zhǎng)的已知向量,分別描述采樣點(diǎn)和樣本值,X1是一個(gè)向量或標(biāo)量,描述欲插值的點(diǎn),Y1是一個(gè)與X1等長(zhǎng)的插值結(jié)果。method是插值方法,允許的取值有l(wèi)inear(直線插值)、nearest、cubic、spline(3次樣條插值)。注意:X1的取值范圍不能超出X的給定范圍,否則,會(huì)給出“NaN”錯(cuò)誤。例: 某觀測(cè)站測(cè)得某日6:00時(shí)至18:00時(shí)之間每隔2小時(shí)的室內(nèi)外溫度(),用3次樣條插值分別求得該日室內(nèi)外6:30至17:30時(shí)之間每隔2小時(shí)各點(diǎn)的近似溫度()。設(shè)時(shí)間變量

8、h為一行向量,溫度變量t為一個(gè)兩列矩陣,其中第一列存放室內(nèi)溫度,第二列儲(chǔ)存室外溫度。命令如下:h =6:2:18;t=18,20,22,25,30,28,24;15,19,24,28,34,32,30;XI =6.5:2:17.5YI=interp1(h,t,XI,spline) %用3次樣條插值計(jì)算2二維數(shù)據(jù)插值二維插值問(wèn)題的函數(shù)interp2,其調(diào)用格式為:Z1=interp2(X,Y,Z,X1,Y1,method)其中X,Y是兩個(gè)向量,分別描述兩個(gè)參數(shù)的采樣點(diǎn),Z是與參數(shù)采樣點(diǎn)對(duì)應(yīng)的函數(shù)值,X1,Y1是兩個(gè)向量或標(biāo)量,描述欲插值的點(diǎn)。Z1是根據(jù)相應(yīng)的插值方法得到的插值結(jié)果。 method

9、的取值與一維插值函數(shù)相同同樣,X1,Y1的取值范圍不能超出X,Y的給定范圍,否則,會(huì)給出“NaN”錯(cuò)誤。3曲線擬合在MATLAB中,用polyfit函數(shù)來(lái)求得最小二乘擬合多項(xiàng)式的系數(shù),再用polyval函數(shù)按所得的多項(xiàng)式計(jì)算所給出的點(diǎn)上的函數(shù)近似值。polyfit函數(shù)的調(diào)用格式為:P,S=polyfit(X,Y,m)函數(shù)根據(jù)采樣點(diǎn)X和采樣點(diǎn)函數(shù)值Y,產(chǎn)生一個(gè)m次多項(xiàng)式P及其在采樣點(diǎn)的誤差向量S。其中X,Y是兩個(gè)等長(zhǎng)的向量,P是一個(gè)長(zhǎng)度為m+1的向量,P的元素為多項(xiàng)式系數(shù)。程序的暫停 暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為: pause(延遲秒數(shù)) 如果省略延遲時(shí)間,直接使用paus

10、e,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。 若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。switch語(yǔ)句例3-6 某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來(lái)表示): price200 沒有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣5000price 14%折扣輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。 程序如下:price=input(請(qǐng)輸入商品價(jià)格);switch fix(price/100) case 0,1 %價(jià)格小于200 rate=0; ca

11、se 2,3,4 %價(jià)格大于等于200但小于500 rate=3/100; case num2cell(5:9) %價(jià)格大于等于500但小于1000 rate=5/100; case num2cell(10:24) %價(jià)格大于等于1000但小于2500 rate=8/100; case num2cell(25:49) %價(jià)格大于等于2500但小于5000 rate=10/100; otherwise %價(jià)格大于等于5000 rate=14/100;endprice=price*(1-rate) %輸出商品實(shí)際銷售價(jià)格3try語(yǔ)句語(yǔ)句格式為:try 語(yǔ)句組1catch 語(yǔ)句組2endtry語(yǔ)句先

12、試探性執(zhí)行語(yǔ)句組1,如果語(yǔ)句組1在執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語(yǔ)句組2。例3-7 矩陣乘法運(yùn)算要求兩矩陣的維數(shù)相容,否則會(huì)出錯(cuò)。先求兩矩陣的乘積,若出錯(cuò),則自動(dòng)轉(zhuǎn)去求兩矩陣的點(diǎn)乘。程序如下:A=1,2,3;4,5,6; B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endClasterr %顯示出錯(cuò)原因例3-16 利用函數(shù)的遞歸調(diào)用,求n!。 n!本身就是以遞歸的形式定義的:顯然,求n!需要求(n-1)!,這時(shí)可采用遞歸調(diào)用。遞歸調(diào)用函數(shù)文件factor.m如下:function f=factor(n)if n=1

13、f=1;else f=factor(n-1)*n; %遞歸調(diào)用求(n-1)!end函數(shù)參數(shù)的可調(diào)性變量nargin和nargout分別記錄調(diào)用該函數(shù)時(shí)的輸入實(shí)參和輸出實(shí)參的個(gè)數(shù)。nargin用法示例。 函數(shù)文件examp.m:function fout=charray(a,b,c)if nargin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end 命令文件mydemo.m:x=1:3;y=1;2;3;examp(x)examp(x,y)examp(x,y,3)全局變量與局部變量全局變量用global命令定

14、義,格式為:global 變量名結(jié)構(gòu)數(shù)據(jù)1結(jié)構(gòu)矩陣的建立與引用結(jié)構(gòu)矩陣的元素可以是不同的數(shù)據(jù)類型,它能將一組具有不同屬性的數(shù)據(jù)納入到一個(gè)統(tǒng)一的變量名下進(jìn)行管理。建立一個(gè)結(jié)構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。具體格式為:結(jié)構(gòu)矩陣名.成員名=表達(dá)式其中表達(dá)式應(yīng)理解為矩陣表達(dá)式。2結(jié)構(gòu)成員的修改可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。例如要給結(jié)構(gòu)矩陣a增加一個(gè)成員x4,可給a中任意一個(gè)元素增加成員x4:a(1).x4=410075;但其他成員均為空矩陣,可以使用賦值語(yǔ)句給它賦確定的值。要?jiǎng)h除結(jié)構(gòu)的成員,則可以使用rmfield函數(shù)來(lái)完成。例如,刪除成員x4:a=rmfield(a,x4);3關(guān)于結(jié)構(gòu)的函數(shù)除

15、了一般的結(jié)構(gòu)數(shù)據(jù)的操作外,MATLAB還提供了部分函數(shù)來(lái)進(jìn)行結(jié)構(gòu)矩陣的操作。單元數(shù)據(jù)1單元矩陣的建立與引用建立單元矩陣和一般矩陣相似,只是矩陣元素用大括號(hào)括起來(lái)。可以用帶有大括號(hào)下標(biāo)的形式引用單元矩陣元素。例如b3,3。單元矩陣的元素可以是結(jié)構(gòu)或單元數(shù)據(jù)。可以使用celldisp函數(shù)來(lái)顯示整個(gè)單元矩陣,如celldisp(b)。還可以刪除單元矩陣中的某個(gè)元素。2關(guān)于單元的函數(shù)MATLAB還提供了部分函數(shù)用于單元的操作。4.1 文件的打開與關(guān)閉4.1.1 文件的打開fopen函數(shù)的調(diào)用格式為:fid= fopen(文件名,打開方式)其中文件名用字符串形式,表示待打開的數(shù)據(jù)文件。常見的打開方式有:

16、r表示對(duì)打開的文件讀數(shù)據(jù),w表示對(duì)打開的文件寫數(shù)據(jù),a表示在打開的文件末尾添加數(shù)據(jù)。fid用于存儲(chǔ)文件句柄值,句柄值用來(lái)標(biāo)識(shí)該數(shù)據(jù)文件,其他函數(shù)可以利用它對(duì)該數(shù)據(jù)文件進(jìn)行操作。4.1.2 文件的關(guān)閉文件在進(jìn)行完讀、寫等操作后,應(yīng)及時(shí)關(guān)閉。關(guān)閉文件用fclose函數(shù),調(diào)用格式為:sta=fclose(fid)該函數(shù)關(guān)閉fid所表示的文件。sta表示關(guān)閉文件操作的返回代碼,若關(guān)閉成功,返回0,否則返回1。4.2 文件的讀寫操作 4.2.1 二進(jìn)制文件的讀寫操作1讀二進(jìn)制文件fread 函數(shù)可以讀取二進(jìn)制文件的數(shù)據(jù),并將數(shù)據(jù)存入矩陣。其調(diào)用格式為:A,COUNT=fread(fid,size, pr

17、ecision)其中A用于存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù),fid為文件句柄,size為可選項(xiàng),若不選用則讀取整個(gè)文件內(nèi)容,若選用則它的值可以是下列值:(1) N表示讀取 N個(gè)元素到一個(gè)列向量。(2) Inf表示讀取整個(gè)文件。(3) M,N表示讀數(shù)據(jù)到MN的矩陣中,數(shù)據(jù)按列存放。precision代表讀寫數(shù)據(jù)的類型2寫二進(jìn)制文件fwrite 函數(shù)按照指定的數(shù)據(jù)類型將矩陣中的元素寫入到文件中。其調(diào)用格式為:COUNT=fwrite (fid, A, precision)其中COUNT返回所寫的數(shù)據(jù)元素個(gè)數(shù),fid為文件句柄,A用來(lái)存放寫入文件的數(shù)據(jù),precision用于控制所

18、寫數(shù)據(jù)的類型,其形式與fread函數(shù)相同。例4-1 建立一數(shù)據(jù)文件magic5.dat,用于存放5階魔方陣。程序如下:fid=fopen(magic5.dat,w);cnt=fwrite(fid,magic(5),int32);fclose(fid);4.2.2 文本文件的讀寫操作1讀文本文件fscanf 函數(shù)的調(diào)用格式為:A,COUNT= fscanf (fid, format, size)其中A用以存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù)。fid為文件句柄。format用以控制讀取的數(shù)據(jù)格式,由%加上格式符組成,常見的格式符有d,f,c,s。size為可選項(xiàng),決定矩陣A中數(shù)據(jù)的排

19、列形式。%e, %f, %g 浮點(diǎn)型(Floating-point numbers)%i 有符號(hào)的整型(Signed integer)%o 有符號(hào)的八進(jìn)制的整型(Signed octal integer)%s 連續(xù)的不帶空格的字符串(A series of non-white-space characters)%u 十進(jìn)的整型(Signed decimal integer)%x 十六進(jìn)制的整型(Signed hexadecimal integer)2寫文本文件fprintf 函數(shù)的調(diào)用格式為:COUNT= fprintf(fid, format, A)其中A存放要寫入文件的數(shù)據(jù)。先按forma

20、t指定的格式將數(shù)據(jù)矩陣A格式化,然后寫入到fid所指定的文件。格式符與fscanf函數(shù)相同。4.3 數(shù)據(jù)文件定位MATLAB提供了與文件定位操作有關(guān)的函數(shù)fseek和ftell。fseek函數(shù)用于定位文件位置指針,其調(diào)用格式為:status=fseek(fid, offset, origin)其中fid為文件句柄,offset表示位置指針相對(duì)移動(dòng)的字節(jié)數(shù),origin表示位置指針移動(dòng)的參照位置。若定位成功,status返回值為0,否則返回值為1。ftell函數(shù)返回文件指針的當(dāng)前位置,其調(diào)用格式為:position=ftell (fid)返回值為從文件開始到指針當(dāng)前位置的字節(jié)數(shù)。若返回值為1表示

21、獲取文件當(dāng)前位置失敗。.xls文件的讀取a=xlsread(F:互評(píng).xls,C4:E6)多項(xiàng)式求根roots函數(shù)用于求多項(xiàng)式的全部根,其調(diào)用格式為:x=roots(P)其中P為多項(xiàng)式的系數(shù)向量,求得的根賦給向量x,即x(1),x(2),x(n)分別代表多項(xiàng)式的n個(gè)根。求多項(xiàng)式x4+8x3-10的根。命令如下:A=1,8,0,0,-10;x=roots(A)若已知多項(xiàng)式的全部根,則可以用poly函數(shù)建立起該多項(xiàng)式,其調(diào)用格式為:P=poly(x)若x為具有n個(gè)元素的向量,則poly(x)建立以x為其根的多項(xiàng)式,且將該多項(xiàng)式的系數(shù)賦給向量P。二維數(shù)據(jù)曲線圖c=sym(-0.1066*t2+6.7

22、5*t+89.51);ezplot(c,0,50)plot(x,y) 其中x和y為長(zhǎng)度相同的向量,分別用于存儲(chǔ)x坐標(biāo)和y坐標(biāo)數(shù)據(jù)。例5-1 在0 x2p區(qū)間內(nèi),繪制曲線 y=2e-0.5xcos(4x)程序如下:hold on/off命令控制是保持原有圖形還是刷新原有圖形grid on/off命令控制是畫還是不畫網(wǎng)格線box on/off命令控制是加還是不加邊框線fplot函數(shù)的調(diào)用格式為: fplot(fname,lims,tol,選項(xiàng))其中fname為函數(shù)名,以字符串形式出現(xiàn),lims為x,y的取值范圍,tol為相對(duì)允許誤差,其系統(tǒng)默認(rèn)值為2e-3。選項(xiàng)定義與plot函數(shù)相同。例5-9 用

23、fplot函數(shù)繪制f(x)=cos(tan(x)的曲線。命令如下:fplot(cos(tan(pi*x), 0,1,1e-4)subplot(m,n,p)該函數(shù)將當(dāng)前圖形窗口分成mn個(gè)繪圖區(qū),即每行n個(gè),共m行,區(qū)號(hào)按行優(yōu)先編號(hào),且選定第p個(gè)區(qū)為當(dāng)前活動(dòng)區(qū)。pie(A) 餅圖 pie(2 4 3 5,North,South,East,West)bar(x,y,選項(xiàng)) 條形圖例: subplot(3,1,1), bar(rand(10,5),stacked), colormap(cool) subplot(3,1,2), bar(0:0.25:1,rand(5),1) subplot(3,1,3

24、), bar(rand(2,3),.75,grouped)隱函數(shù)繪圖例:subplot(2,2,1);ezplot(x2+y2-9);axis equalsubplot(2,2,2);ezplot(x3+y3-5*x*y+1/5)subplot(2,2,3);ezplot(cos(tan(pi*x), 0,1)subplot(2,2,4);ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi)三維圖形 plot3(x1,y1,z1,選項(xiàng)1,x2,y2,z2,選項(xiàng)2,xn,yn,zn,選項(xiàng)n) 繪制三維曲線。程序如下:t=0:pi/100:20*pi;x=sin(t);

25、y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title(Line in 3-D Space);xlabel(X);ylabel(Y);zlabel(Z);grid on;meshgrid函數(shù)產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標(biāo)矩陣。其格式為:x=a:d1:b; y=c:d2:d;X,Y=meshgrid(x,y);surf函數(shù)和mesh函數(shù)的調(diào)用格式為:mesh(x,y,z,c)surf(x,y,z,c)此外,還有帶等高線的三維網(wǎng)格曲面函數(shù)meshc和帶底座的三維網(wǎng)格曲面函數(shù)meshz。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線

26、,meshz還在xy平面上繪制曲面的底座。例: 在xy平面內(nèi)選擇區(qū)域-8,8-8,8,繪制4種三維曲面圖。程序如下:x,y=meshgrid(-8:0.5:8);z=sin(sqrt(x.2+y.2)./sqrt(x.2+y.2+eps);subplot(2,2,1);mesh(x,y,z);title(mesh(x,y,z)subplot(2,2,2);meshc(x,y,z);title(meshc(x,y,z)subplot(2,2,3);meshz(x,y,z)title(meshz(x,y,z)subplot(2,2,4);surf(x,y,z);title(surf(x,y,z)標(biāo)

27、準(zhǔn)三維曲面sphere函數(shù)的調(diào)用格式為:x,y,z=sphere(n)cylinder函數(shù)的調(diào)用格式為:x,y,z= cylinder(R,n)MATLAB還有一個(gè)peaks 函數(shù),稱為多峰函數(shù),常用于三維曲面的演示。例:程序如下:t=0:pi/20:2*pi;x,y,z= cylinder(2+sin(t),30);subplot(2,2,1);surf(x,y,z);subplot(2,2,2);x,y,z=sphere;surf(x,y,z);subplot(2,1,2);x,y,z=peaks(30); surf(x,y,z);bar3函數(shù)繪制三維條形圖,常用格式為:bar3(y)ba

28、r3(x,y)繪制多峰函數(shù)的瀑布圖和等高線圖。程序如下:subplot(1,2,1);X,Y,Z=peaks(30);waterfall(X,Y,Z)xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);subplot(1,2,2);contour3(X,Y,Z,12,k); %其中12代表高度的等級(jí)數(shù)xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);視點(diǎn)處理MATLAB提供了設(shè)置視點(diǎn)的函數(shù)view,其調(diào)用格式為:view(az,el)其中az為方位角,el為仰角,它們均以度為單位。系統(tǒng)缺省的視點(diǎn)定義為方位角-37.5

29、,仰角30。圖像處理與動(dòng)畫制作圖像處理1imread和imwrite函數(shù)imread和imwrite函數(shù)分別用于將圖像文件讀入MATLAB工作空間,以及將圖像數(shù)據(jù)和色圖數(shù)據(jù)一起寫入一定格式的圖像文件。MATLAB支持多種圖像文件格式,如.bmp、.jpg、.jpeg、.tif等。2image和imagesc函數(shù)這兩個(gè)函數(shù)用于圖像顯示。為了保證圖像的顯示效果,一般還應(yīng)使用colormap函數(shù)設(shè)置圖像色圖。例5-26 有一圖像文件flower.jpg,在圖形窗口顯示該圖像。程序如下:x,cmap=imread(flower.jpg); %讀取圖像的數(shù)據(jù)陣和色圖陣image(x);colormap(

30、cmap);axis image off %保持寬高比并取消坐標(biāo)軸 動(dòng)畫制作MATLAB提供getframe、moviein和movie函數(shù)進(jìn)行動(dòng)畫制作。1getframe函數(shù)getframe函數(shù)可截取一幅畫面信息(稱為動(dòng)畫中的一幀),一幅畫面信息形成一個(gè)很大的列向量。顯然,保存n幅圖面就需一個(gè)大矩陣。2moviein函數(shù)moviein(n)函數(shù)用來(lái)建立一個(gè)足夠大的n列矩陣。該矩陣用來(lái)保存n幅畫面的數(shù)據(jù),以備播放。之所以要事先建立一個(gè)大矩陣,是為了提高程序運(yùn)行速度。3movie函數(shù)movie(m,n)函數(shù)播放由矩陣m所定義的畫面n次,缺省時(shí)播放一次。繪制了peaks函數(shù)曲面并且將它繞z軸旋轉(zhuǎn)。

31、例、程序如下X,Y,Z=peaks(30); surf(X,Y,Z)axis(-3,3,-3,3,-10,10)axis off;shading interp;colormap(hot);m=moviein(20); %建立一個(gè)20列大矩陣for i=1:20view(-37.5+24*(i-1),30) %改變視點(diǎn)m(:,i)=getframe; %將圖形保存到m矩陣end movie(m,2); %播放畫面2次常微分方程初值問(wèn)題的數(shù)值解法 龍格庫(kù)塔法簡(jiǎn)介 龍格庫(kù)塔法的實(shí)現(xiàn) 基于龍格庫(kù)塔法,MATLAB提供了求常微分方程數(shù)值解的函數(shù),一般調(diào)用格式為: t,y=ode23(fname,tspa

32、n,y0) t,y=ode45(fname,tspan,y0)其中fname是定義f(t,y)的函數(shù)文件名,該函數(shù)文件必須返回一個(gè)列向量。tspan形式為t0,tf,表示求解區(qū)間。y0是初始狀態(tài)列向量。t和y分別給出時(shí)間向量和相應(yīng)的狀態(tài)向量。例. 設(shè)有初值問(wèn)題,試求其數(shù)值解,并與精確解相比較(精確解為y(t)=)。 (1) 建立函數(shù)文件funt.m。function yp=funt(t,y)yp=(y2-t-2)/4/(t+1);(2) 求解微分方程。t0=0;tf=10;y0=2;t,y=ode23(funt,t0,tf,y0); %求數(shù)值解y1=sqrt(t+1)+1; %求精確解tyy1

33、 y為數(shù)值解,y1為精確值,顯然兩者近似。函數(shù)極值MATLAB提供了基于單純形算法求解函數(shù)極值的函數(shù)fmin和fmins,它們分別用于單變量函數(shù)和多變量函數(shù)的最小值,其調(diào)用格式為: x=fmin(fname,x1,x2) x=fmins(fname,x0)這兩個(gè)函數(shù)的調(diào)用格式相似。其中fmin函數(shù)用于求單變量函數(shù)的最小值點(diǎn)。fname是被最小化的目標(biāo)函數(shù)名,x1和x2限定自變量的取值范圍。fmins函數(shù)用于求多變量函數(shù)的最小值點(diǎn),x0是求解的初始值向量。數(shù)值積分的實(shí)現(xiàn)方法1變步長(zhǎng)辛普生法該函數(shù)的調(diào)用格式為: I,n=quad(fname,a,b,tol,trace)其中fname是被積函數(shù)名。

34、a和b分別是定積分的下限和上限。tol用來(lái)控制積分精度,缺省時(shí)取tol=0.001。trace控制是否展現(xiàn)積分過(guò)程,若取非0則展現(xiàn)積分過(guò)程,取0則不展現(xiàn),缺省時(shí)取trace=0。返回參數(shù)I即定積分值,n為被積函數(shù)的調(diào)用次數(shù)。2牛頓柯特斯法該函數(shù)的調(diào)用格式為:I,n=quad8(fname,a,b,tol,trace)其中參數(shù)的含義和quad函數(shù)相似,只是tol的缺省值取10-6。該函數(shù)可以更精確地求出定積分的值,且一般情況下函數(shù)調(diào)用的步數(shù)明顯小于quad函數(shù),從而保證能以更高的效率求出所需的定積分值。例 分別用quad函數(shù)和quad8函數(shù)求定積分的近似值,并在相同的積分精度下,比較函數(shù)的調(diào)用次

35、數(shù)。調(diào)用函數(shù)quad求定積分:format long;fx=inline(exp(-x);I,n=quad(fx,1,2.5,1e-10)I = 0.28579444254766n = 65 調(diào)用函數(shù)quad8求定積分:format long;fx=inline(exp(-x);I,n=quad8(fx,1,2.5,1e-10)I = 0.28579444254754n = 33二重定積分的數(shù)值求解該函數(shù)的調(diào)用格式為:I=dblquad(f,a,b,c,d,tol,trace)該函數(shù)求f(x,y)在a,bc,d區(qū)域上的二重定積分。參數(shù)tol,trace的用法與函數(shù)quad完全相同。例、 計(jì)算二

36、重定積分(1) 建立一個(gè)函數(shù)文件fxy.m:function f=fxy(x,y)global ki;ki=ki+1; %ki用于統(tǒng)計(jì)被積函數(shù)的調(diào)用次數(shù)f=exp(-x.2/2).*sin(x.2+y);(2) 調(diào)用dblquad函數(shù)求解。global ki;ki=0;I=dblquad(fxy,-2,2,-1,1)kiI = 1.57449318974494ki = 1038用不同的方法求函數(shù)f(x)的數(shù)值導(dǎo)數(shù),并在同一個(gè)坐標(biāo)系中做出f(x)的圖像。程序如下:f=inline(sqrt(x.3+2*x.2-x+12)+(x+5).(1/6)+5*x+2);g=inline(3*x.2+4*x

37、-1)./sqrt(x.3+2*x.2-x+12)/2+1/6./(x+5).(5/6)+5);x=-3:0.01:3;p=polyfit(x,f(x),5); %用5次多項(xiàng)式p擬合f(x)dp=polyder(p); %對(duì)擬合多項(xiàng)式p求導(dǎo)數(shù)dpdpx=polyval(dp,x); %求dp在假設(shè)點(diǎn)的函數(shù)值dx=diff(f(x,3.01)/0.01; %直接對(duì)f(x)求數(shù)值導(dǎo)數(shù)gx=g(x); %求函數(shù)f的導(dǎo)函數(shù)g在假設(shè)點(diǎn)的導(dǎo)數(shù)plot(x,dpx,x,dx,.,x,gx,-); %作圖符號(hào)對(duì)象1建立符號(hào)變量和符號(hào)常量MATLAB提供了兩個(gè)建立符號(hào)對(duì)象的函數(shù):sym和syms,兩個(gè)函數(shù)的用法

38、不同。(1) sym函數(shù)sym函數(shù)用來(lái)建立單個(gè)符號(hào)量,一般調(diào)用格式為:符號(hào)量名=sym(符號(hào)字符串)該函數(shù)可以建立一個(gè)符號(hào)量,符號(hào)字符串可以是常量、變量、函數(shù)或表達(dá)式。應(yīng)用sym函數(shù)還可以定義符號(hào)常量,使用符號(hào)常量進(jìn)行代數(shù)運(yùn)算時(shí)和數(shù)值常量進(jìn)行的運(yùn)算不同。下面的命令用于比較符號(hào)常量與數(shù)值常量在代數(shù)運(yùn)算時(shí)的差別。(2) syms函數(shù)函數(shù)sym一次只能定義一個(gè)符號(hào)變量,使用不方便。MATLAB提供了另一個(gè)函數(shù)syms,一次可以定義多個(gè)符號(hào)變量。syms函數(shù)的一般調(diào)用格式為:syms 符號(hào)變量名1 符號(hào)變量名2 符號(hào)變量名n用這種格式定義符號(hào)變量時(shí)不要在變量名上加字符串分界符(),變量間用空格而不要用

39、逗號(hào)分隔。factor(s):對(duì)符號(hào)表達(dá)式s分解因式。expand(s):對(duì)符號(hào)表達(dá)式s進(jìn)行展開。collect(s):對(duì)符號(hào)表達(dá)式s合并同類項(xiàng)。collect(s,v):對(duì)符號(hào)表達(dá)式s按變量v合并同類項(xiàng)。simplify(s):應(yīng)用函數(shù)規(guī)則對(duì)s進(jìn)行化簡(jiǎn)。simple(s):調(diào)用MATLAB的其他函數(shù)對(duì)表達(dá)式進(jìn)行綜合化簡(jiǎn),并顯示化簡(jiǎn)過(guò)程。sym可以將數(shù)值表達(dá)式變換成它的符號(hào)表達(dá)式。numeric或eval可以將符號(hào)表達(dá)式變換成數(shù)值表達(dá)式。transpose(s):返回s矩陣的轉(zhuǎn)置矩陣。determ(s):返回s矩陣的行列式值。符號(hào)極限limit函數(shù)的調(diào)用格式為:(1) limit(f,x,a)

40、:求符號(hào)函數(shù)f(x)的極限值。即計(jì)算當(dāng)變量x趨近于常數(shù)a時(shí),f(x)函數(shù)的極限值。(2) limit(f,a):求符號(hào)函數(shù)f(x)的極限值。由于沒有指定符號(hào)函數(shù)f(x)的自變量,則使用該格式時(shí),符號(hào)函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)自變量,即變量x趨近于a。(3) limit(f):求符號(hào)函數(shù)f(x)的極限值。符號(hào)函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)變量;沒有指定變量的目標(biāo)值時(shí),系統(tǒng)默認(rèn)變量趨近于0,即a=0的情況。(4) limit(f,x,a,right):求符號(hào)函數(shù)f的極限值。right表示變量x從右邊趨近于a。(5) limit(f,x,a,left):

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論