




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MATLAB及在電子信息課程中的應(yīng)用2022/12/221MATLAB及在電子信息課程中的應(yīng)用2022/12/181第一篇語言篇第1章MATLAB語言概述第2章基本語法第3章MATLAB的開發(fā)環(huán)境和工具第4章MATLAB的其他函數(shù)庫2022/12/222第一篇語言篇第1章MATLAB語言概述2022第二篇應(yīng)用篇第5章MATLAB在電路中的應(yīng)用第6章MATLAB在信號(hào)與系統(tǒng)中的應(yīng)用第7章MATLAB在數(shù)字信號(hào)處理中應(yīng)用第8章MATLAB在自動(dòng)控制原理中應(yīng)用第9章MATLAB工具箱簡(jiǎn)介附錄A、B、C、D2022/12/223第二篇應(yīng)用篇第5章MATLAB在電路中的應(yīng)用20第1章MATLAB語言概述1.1MATLAB語言的發(fā)展1.2MATLAB語言的特點(diǎn)1.3MATLAB的工作環(huán)境1.3.1命令窗1.3.2圖形窗1.3.3文本編輯窗1.4演示程序1.5網(wǎng)絡(luò)資源2022/12/224第1章MATLAB語言概述1.1MATLAB語言的發(fā)1.1MATLAB語言的發(fā)展1.1.1MATLAB概述
MATLAB是集數(shù)值計(jì)算、符號(hào)運(yùn)算及圖形處理等強(qiáng)大功能于一體的科學(xué)計(jì)算語言,是一種交互式的以矩陣為基礎(chǔ)的系統(tǒng)計(jì)算平臺(tái),它用于科學(xué)和工程的計(jì)算與可視化。它的優(yōu)點(diǎn)在于快速開發(fā)計(jì)算方法,而不在于計(jì)算速度。
MATLAB已成為一門高校必修的課程,也是最為普遍的計(jì)算工具之一。2022/12/2251.1MATLAB語言的發(fā)展1.1.1MATLAB1.1MATLAB語言的發(fā)展(續(xù))1.1.2Matlab的發(fā)展
MATLAB名字由MATrix和LABoratory兩詞的前三個(gè)字母組合而成。那是20世紀(jì)七十年代,時(shí)任美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任的CleveMoler出于減輕學(xué)生編程負(fù)擔(dān)的動(dòng)機(jī),為學(xué)生設(shè)計(jì)了一組調(diào)用LINPACK和EISPACK矩陣軟件工具包庫程序的的“通俗易用”的接口,此即用FORTRAN編寫的萌芽狀態(tài)的MATLAB。1984年由Little、Moler、SteveBangert合作成立MathWorks公司,并把MATLAB正式推向市場(chǎng)。從這時(shí)起,MATLAB的內(nèi)核采用C語言編寫,而且除原有的數(shù)值計(jì)算能力外,還新增了數(shù)據(jù)圖視功能。2022/12/2261.1MATLAB語言的發(fā)展(續(xù))1.1.2Mat1997年仲春,MATLAB5.0版問世,緊接著是5.1、5.2,以及和1999年春的5.3版?,F(xiàn)今的MATLAB擁有更豐富的數(shù)據(jù)類型和結(jié)構(gòu)、更友善的面向?qū)ο?、更加快速精良的圖形可視、更廣博的數(shù)學(xué)和數(shù)據(jù)分析資源、更多的應(yīng)用開發(fā)工具。2000年末又推出6.0版本。無論在界面的設(shè)計(jì)上還是在內(nèi)容上較以前版本都有很大的進(jìn)展。2004年又推出了7.0版本,2022/12/2271997年仲春,MATLAB5.0版問世,緊接著是5.1、51.1MATLAB語言的發(fā)展(續(xù))1.1.3Matlab的版本演化Matlab1.0Pcmatlab->matlab386Matlab3.5+simulinkMatlab4.0:simlink內(nèi)嵌(1992)Matlab5.0:全面的面向?qū)ο驧atlab5.1~5.3(1999)Matlab6.0(2000)Matlab6.5:購(gòu)并了MATRIXxMatlab7.0:(2004)2022/12/2281.1MATLAB語言的發(fā)展(續(xù))1.1.3Mat1.2MATLAB語言的特點(diǎn)友好的工作平臺(tái)和編程環(huán)境簡(jiǎn)單易用的程序語言強(qiáng)大的科學(xué)計(jì)算及數(shù)據(jù)處理能力出色的圖形處理功能應(yīng)用廣泛的模塊集和工具箱實(shí)用的程序接口和發(fā)布平臺(tái)模塊化的設(shè)計(jì)和系統(tǒng)級(jí)的仿真2022/12/2291.2MATLAB語言的特點(diǎn)友好的工作平臺(tái)和編程環(huán)境201.3MATLAB的工作環(huán)境1.3.1命令窗(CommandWindow)
單行命令執(zhí)行方式執(zhí)行結(jié)果直接顯示1.3.2圖形窗(FigureWindow)
用圖形方式表示計(jì)算結(jié)果1.3.3文本編輯窗(FileEditor)多行命令組成語言組,可以文件方式存盤
下面就具體看一下MATLAB的工作環(huán)境演示。2022/12/22101.3MATLAB的工作環(huán)境1.3.1命令窗(Com1.4演示程序在MATLAB的命令窗中鍵入
demo或demos2022/12/22111.4演示程序在MATLAB的命令窗中鍵入2022/12%pend.mplot([-0.2,0.2],[0;0],'color','y','linestyle','-','linewidth',10);g=0.98;l=1;theta0=pi/6;x0=l*sin(theta0);y0=-l*cos(theta0);axis([-0.75,0.75,-1.25,0]);axis('off');head=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',40);body=line([0;x0],[0,y0],'color','b','linestyle','-','erasemode','xor');t=0;dt=0.01;whilet<=50t=t+dt;theta=theta0*cos(sqrt(g/l)*t);x=l*sin(theta);y=-l*cos(theta);set(head,'xdata',x,'ydata',y);set(body,'xdata',[0;x],'ydata',[0;y]);drawnow;end2022/12/2212%pend.m2022/12/1812部分命令的演示例1.求的算術(shù)運(yùn)算結(jié)果。(12+2*(7-4))/3^2
ans=2
例2.簡(jiǎn)單矩陣的輸入步驟。A=[1,2,3;4,5,6;7,8,9]
A=1234567892022/12/2213部分命令的演示例1.求例3.矩陣的分行輸入。A=[1,2,3 4,5,6 7,8,9]A=123456789
例4.指令的續(xù)行輸入S=1–1/2+1/3–1/4+1/5–1/6+1/7…-1/8
S=0.63452022/12/2214例3.矩陣的分行輸入。2022/12/1814例5.復(fù)數(shù)表達(dá),及計(jì)算。(1)z1=3+4i
z1=3.0000+4.0000i(2)z2=1+2*i z3=2*exp(i*pi/6) z=z1*z2/z3z2=1.0000+2.0000iz3=1.7321+1.0000iz=0.3349+5.5801i
2022/12/2215例5.復(fù)數(shù)例6.復(fù)數(shù)矩陣的生成及運(yùn)算A=[1,3;2,4]-[5,8;6,9]*iB=[1+5i,2+6i;3+8*i,4+9*i]C=A*B
A=1.0000-5.0000i3.0000-8.0000i2.0000-6.0000i4.0000-9.0000iB=1.0000+5.0000i2.0000+6.0000i3.0000+8.0000i4.0000+9.0000iC=1.0e+002*0.99001.1600-0.0900i1.1600+0.0900i1.37002022/12/2216例6.復(fù)數(shù)矩陣的生成及運(yùn)算2022/12/1816例7.求上例復(fù)數(shù)矩陣C的實(shí)部、虛部、模和相角。C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi
C_real=99116116137C_imag=0-990C_magnitude=99.0000116.3486116.3486137.0000C_phase=0-4.43654.436502022/12/2217例7.求上例復(fù)數(shù)矩陣C的實(shí)部、虛部、模和相角。2022/例8.用MATLAB計(jì)算能得到–2嗎?(1)a=-8;r=a^(1/3)
r=1.0000+1.7321i(2)全部方根計(jì)算如下m=[0,1,2]; R=abs(a)^(1/3); Theta=(angle(a)+2*pi*m)/3; rrr=R*exp(i*Theta)
rrr=1.0000+1.7321i-2.0000+0.0000i1.0000-1.7321i2022/12/2218例8.用MATLAB計(jì)算能得到(3)圖形表示t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t);plot(x,y,'b:'),gridholdonplot(rrr(1),'.','MarkerSize',30,'Color','r')plot(rrr([2,3]),'o','MarkerSize',15,'Color','b')axis([-3,3,-3,3]),axissquareholdoff
2022/12/2219(3)圖形表示2022/12/1819例9.畫出衰減振蕩曲線及其它的包絡(luò)線。t的取值范圍是t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b')2022/12/2220例9.畫出衰減振蕩曲線及其它的包絡(luò)線例10.畫出所表示的三維曲面。的取值范圍是[-8,8].clear;x=-8:0.5:8;y=x'; X=ones(size(y))*x; Y=y*ones(size(x)); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R;mesh(X,Y,Z); colormap(hot)
xlabel('x'),ylabel('y'),zlabel('z')
2022/12/2221例10.畫出所表示的三維曲面。的1.5網(wǎng)絡(luò)資源USENET新聞組MATLAB的新聞組是comp.soft-sys.MATLAB。瀏覽器指向
網(wǎng)絡(luò)上的工具箱/
/matlabcentral/fileexchange/loadCategory.do2022/12/22221.5網(wǎng)絡(luò)資源USENET新聞組2022/12/18221.5網(wǎng)絡(luò)資源(續(xù))BBS哈爾濱工業(yè)大學(xué)bbs:telnet://上海交通大學(xué)bbs:telnet://清華大學(xué)bbsmathtoolswww服務(wù)Matlab大觀園:
2022/12/22231.5網(wǎng)絡(luò)資源(續(xù))BBS2022/12/1823第2章基本語法2.1變量及其賦值2.2矩陣的初等運(yùn)算2.3元素群運(yùn)算2.4邏輯判斷及流程控制2.5基本繪圖方法2.6M文件及程序調(diào)試2022/12/2224第2章基本語法2.1變量及其賦值2022/12/182.1變量及其賦值2.1.1標(biāo)識(shí)符與數(shù)標(biāo)識(shí)符是標(biāo)識(shí)變量名、常量名、函數(shù)名、文件名的字符串的總稱。1、表示符第1個(gè)字符必須是字母。2、長(zhǎng)度不超過31個(gè)。3、區(qū)分大小寫。4、變量中不能含有標(biāo)點(diǎn)符號(hào)。5、變量可直接參與計(jì)算。6、變量一般無需事先定義2022/12/22252.1變量及其賦值2.1.1標(biāo)識(shí)符與數(shù)2022/12.1.1標(biāo)識(shí)符與數(shù)(續(xù))7、特殊變量2022/12/22262.1.1標(biāo)識(shí)符與數(shù)(續(xù))7、特殊變量2022/12/12.1.1標(biāo)識(shí)符與數(shù)(續(xù))8、數(shù)值顯示格式MATLAB中所有的量為雙字長(zhǎng)浮點(diǎn)數(shù),顯示按下面顯示規(guī)則:在缺省情況下,當(dāng)結(jié)果為整數(shù),作為整數(shù)顯示;當(dāng)結(jié)果為實(shí)數(shù),以小數(shù)后4位的精度近似顯示。
如果結(jié)果中的有效數(shù)字超出了這一范圍,以科學(xué)計(jì)數(shù)法顯示結(jié)果。format命令改變顯示格式,常用的的格式有l(wèi)ong(16位)bank(2個(gè)十進(jìn)制位)hex(十六進(jìn)制)short(缺省)shorte(5位加指數(shù))+(符號(hào))longe(16位加指數(shù))rat(有理數(shù)近似)2022/12/22272.1.1標(biāo)識(shí)符與數(shù)(續(xù))8、數(shù)值顯示格式2022/122.1.2矩陣及其元素的賦值矩陣獲取格式:變量=表達(dá)式(或數(shù))1、直接輸入:A=[123;456;7,8,9]*矩陣用中括號(hào)括起。*元素間用空格隔開,或用逗號(hào)隔開。*每行用分號(hào);號(hào)表示回車。2、行向量B=[12345]3、列向量C=[1;2;3;4;5];
每行命令后面的分號(hào);表示結(jié)果不顯示。2022/12/22282.1.2矩陣及其元素的賦值矩陣獲取格式:變量=表達(dá)式(2.1.2矩陣及其元素的賦值(續(xù))4、元素可用表達(dá)式表示
D=[-1.3sqrt(3)(1+2+3)/5+1]5、用語句生成行向量
E=from:step:to
即E=開始數(shù):步長(zhǎng):結(jié)束數(shù)
E=1:2:10得E=[13579]6、矩陣連接B=[ab]V=[a;b]2022/12/22292.1.2矩陣及其元素的賦值(續(xù))4、元素可用表達(dá)式表示2.1.2矩陣及其元素的賦值(續(xù))7、用函數(shù)創(chuàng)建如:zeros(m,n)ones(m,n)eye(m,n)
zeros(3);zeros(3,3);zeros(2,3);zeros(3,2);ones(3);ones(3,3);ones(2,3);ones(3,2);eye(3);eye(3,3);eye(3,4);eye(4,3);2022/12/22302.1.2矩陣及其元素的賦值(續(xù))7、用函數(shù)創(chuàng)建202.1.2矩陣及其元素的賦值(續(xù))8、rand(m,n)%產(chǎn)生均勻分布隨機(jī)數(shù)(0,1)9、rand(‘state’,0)%把均勻分布偽隨機(jī)發(fā)生器置為0狀態(tài)10、randn(m,n)%產(chǎn)生正態(tài)分布隨機(jī)數(shù)11、magic(m)%產(chǎn)生魔方數(shù)組(對(duì)高維不適用)%即每行、每列及對(duì)角元素之和為(n^3+n)/212、linspace(a,b,n)%在a和b之間均勻產(chǎn)生n個(gè)點(diǎn)的值如:f=linspace(0,1,5)則f=051.013、logspace(a,b,n)%在a和b之間對(duì)數(shù)分布產(chǎn)生n個(gè)點(diǎn)的值如:f=logspace(0,1,5)則f=1.00001.77833.16235.623410.00002022/12/22312.1.2矩陣及其元素的賦值(續(xù))8、rand(m,n)2.1.2矩陣及其元素的賦值(續(xù))矩陣中的元素(用圓括號(hào)中數(shù)字來注明)1.A(i,j)表示第i行,第j列元素。2.A(i)表示第i個(gè)元素。
矩陣中元素的排序如右所示3.A(i,j)=常量,表示給A中元素賦值。
當(dāng)下標(biāo)超出原矩陣的尺寸,則自動(dòng)擴(kuò)展行列并補(bǔ)零。2022/12/22322.1.2矩陣及其元素的賦值(續(xù))矩陣中的元素(用圓括號(hào)2.1.2矩陣及其元素的賦值(續(xù))4.A(:,j)表示A陣中第j列所有元素。5.A(i,:)表示A陣中第i行所有元素。6.A(2:3,4:6)表示第2行到第3行,第4列到第6列的子矩陣。7.A(3:7)指A陣中第3個(gè)到第7個(gè)元素(列優(yōu)先)矩陣的序號(hào)編址:按列計(jì)數(shù)。8.A(2)=[]表示去除矩陣中元素。此時(shí)矩陣變?yōu)樾芯仃嚒?.A(:)指A陣中所有元素組成列向量。2022/12/22332.1.2矩陣及其元素的賦值(續(xù))4.A(:,j2.1.3復(fù)數(shù)1、復(fù)數(shù)的虛部部分用i或j表示。如:2+3i,3-4j2、復(fù)數(shù)可直接計(jì)算。如:z=[2+3i;3-4j]或f=z+[2+j;3];3、復(fù)數(shù)的實(shí)部和虛部可分別賦值。但i和j需先清除。如:clearijf=[1,3;5,7]+[2,4;6,8]*j2022/12/22342.1.3復(fù)數(shù)1、復(fù)數(shù)的虛部部分用i或j表示。20222.1.3復(fù)數(shù)4、B=Z’表示共軛轉(zhuǎn)置。5、B=conj(Z)表示共軛。如:Z=[1+2i,3-4j]則:B=Z’有B=1-2i3+4jB=conj(Z)有B=[1-2i,3+4j]2022/12/22352.1.3復(fù)數(shù)4、B=Z’表示共軛轉(zhuǎn)置。2022/122.1.3復(fù)數(shù)6、B=conj(Z)’表示轉(zhuǎn)置。7、B=Z.’
表示非共軛復(fù)數(shù)轉(zhuǎn)置。如:Z=[1+2i,3-4j]則:B=conj(Z)’有B=1+2i3-4jB=Z.’有B=1+2i3-4j2022/12/22362.1.3復(fù)數(shù)6、B=conj(Z)’表示轉(zhuǎn)置。20222.1.4變量的查詢,存儲(chǔ),提取1、變量的查詢who或whos2、變量的存儲(chǔ)
save文件名[.mat]
變量列表
如:savesarabc
變量中間用空格隔開,不能加逗號(hào)。
3、變量的提取load文件名4、變量的清除clear變量列表5、清除所有變量clearall2022/12/22372.1.4變量的查詢,存儲(chǔ),提取1、變量的查詢2.1.5基本賦值矩陣為了方便給大量元素賦值,MATLAB提供了一些基本矩陣。見書中表2.1如:A=zeros(m,n)全0矩陣B=ones(m,n)全1矩陣C=eye(m,n)單位矩陣D=rand(m,n)0—1之間隨機(jī)數(shù)均勻分布randn(‘state’,0’);%把隨機(jī)數(shù)發(fā)生器置0E=randn(m,n)均值為0的,單位方差正態(tài)分布隨機(jī)矩陣F=magic(m)魔方矩陣2022/12/22382.1.5基本賦值矩陣為了方便給大量元素賦值,MATLAG=linspace(a,b,n)線性分隔,a,b之間均勻產(chǎn)生n個(gè)數(shù)H=logspace(a,b,n)對(duì)數(shù)分隔,a,b之間產(chǎn)生n個(gè)數(shù)K=diag(A);取A中對(duì)角線元素得到列向量。P=diag(diag(A))產(chǎn)生對(duì)角陣
a=[1234];b=diag(a)產(chǎn)生對(duì)角陣如A=[123;456;789]
B=diag(A)則:B=[1;5;9];2022/12/2239G=linspace(a,b,n)線2.2矩陣的初等運(yùn)算2.2.1矩陣的加減乘除1、+,-,*,/,\2、點(diǎn)乘:.*右除:./左除:.\1、C=A+B;C=A-BC=A*B
注意:矩陣必須相匹配2、X=A\B表示AX=BX=A-1B即X=inv(A)*B3、X=A/B表示XB=AX=AB-1即X=A*inv(B)4、[m,n]=size(A)計(jì)算矩陣A的行列大小5、K=length(A)計(jì)算矩陣A的行列大小中最大的數(shù)2022/12/22402.2矩陣的初等運(yùn)算2.2.1矩陣的加減乘除20222.2.1矩陣的加減乘除點(diǎn)乘、點(diǎn)除6、C=A.*B對(duì)應(yīng)元素間相乘。2022/12/22412.2.1矩陣的加減乘除點(diǎn)乘、點(diǎn)除2022/12/1847、C=A./B對(duì)應(yīng)元素間相除。8、C=A.\B2022/12/22427、C=A./B對(duì)應(yīng)元素間相除。2022/12/12.2.2矩陣除法及線性方程組的解1、方陣的行列式
B=det(A)即B=|A|2、方陣的求逆
B=inv(A)即B=A-1條件|A|≠03、方陣的偽逆矩陣
B=pinv(A)條件|A|=04、方陣的伴隨矩陣
B=inv(A)*det(A)即B=A-1|A|2022/12/22432.2.2矩陣除法及線性方程組的解1、方陣的行列式2022.2.3矩陣的乘方和冪次函數(shù)1、^矩陣乘方2、.^元素對(duì)元素的乘方C=A^n表示A陣自乘n次。C=A^(-n)表示A陣的逆矩陣自乘n次。C=A.^n表示A陣中每個(gè)元素自乘n次。C=A.^(-n)表示A陣中每個(gè)元素自乘n次后的逆陣,即每個(gè)元素為1/(A^n)。2022/12/22442.2.3矩陣的乘方和冪次函數(shù)1、^矩陣乘方2022/1如C=A^2C=A.^2C=A^(-2)====inv(A)^2C=A.^(-2)2022/12/2245如2022/12/18452.2.4矩陣結(jié)構(gòu)形式的提取與變換B=fliplr(A)%將A矩陣左右翻轉(zhuǎn)B=flipud(A)%將A矩陣上下翻轉(zhuǎn)B=reshape(A,m,n)%將A陣重組為mxn矩陣B=rot90(A)%將A矩陣逆時(shí)針翻轉(zhuǎn)90度B=diag(A)%提取A矩陣的對(duì)角組成列向量B=tril(A)%提取A矩陣的左下三角部分B=triu(A)%提取A矩陣的右上三角部分2022/12/22462.2.4矩陣結(jié)構(gòu)形式的提取與變換B=fliplr(A)如:B=fliplr(A)B=flipud(A)B=rot90(A)B=tril(A)2022/12/2247如:2022/12/18472.3元素群運(yùn)算2.3.1數(shù)組及其賦值1、t=[初值:步長(zhǎng):終值];
如t=0:0.1:1tt=[10:-1:1]2、t=linspace(初值,終值,點(diǎn)數(shù))
如:tr=linspace(0,2*pi,9)3、t=logspace(初值,終值,點(diǎn)數(shù))
如:tp=logspace(0,1,11)2022/12/22482.3元素群運(yùn)算2.3.1數(shù)組及其賦值2022/2.3.2元素群的四則運(yùn)算表示對(duì)矩陣中每個(gè)元素進(jìn)行運(yùn)算
如X=[123];Y=[456]Z=X.*YZ=[41018]Z=X.\YZ=[42.52]Z=X.^YZ=[132729]
Z=X.^NN=2Z=[149]Z=2.^[XY]Z=[248163264]2022/12/22492.3.2元素群的四則運(yùn)算表示對(duì)矩陣中每個(gè)元素進(jìn)行運(yùn)算22.3.3元素群的函數(shù)等命令可以直接MATLAB中exp、sprt、sin、cos使用在矩陣上,這種運(yùn)算只是定義在矩陣的單個(gè)元素上,即分別對(duì)矩陣的每個(gè)元素進(jìn)行運(yùn)算。MATLAB中也提供了基本的三角函數(shù)。
注意其中的取整函數(shù)名含義abs絕對(duì)值或者復(fù)數(shù)模sqrt平方根real實(shí)部imag虛部conj復(fù)數(shù)共軛round4舍5入到整數(shù)fix舍入到最接近0的整數(shù)floor舍入到最接近-∞的整數(shù)ceil舍入到最接近∞的整數(shù)2022/12/22502.3.3元素群的函數(shù)等命令可以直接MATLAB中ex2.3.3元素群的函數(shù)函數(shù)名含義sign符號(hào)函數(shù)rem留數(shù)sin正弦cos余弦tan正切asin反正弦acos反余弦atan反正切atan2第四象限反正切函數(shù)名含義sinh雙曲正弦cosh雙曲余弦tanh雙曲正切exp自然指數(shù)log自然對(duì)數(shù)log10以10為底的對(duì)數(shù)bessel貝賽爾函數(shù)gamma伽嗎函數(shù)rat有理逼近2022/12/22512.3.3元素群的函數(shù)函數(shù)名含義sign符號(hào)函數(shù)rem2.4邏輯判斷及流程控制2.4.1關(guān)系操作符MATLAB常用的關(guān)系操作符有:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。MATLAB的關(guān)系操作符可以用來比較兩個(gè)大小相同的數(shù)組,或者比較一個(gè)數(shù)組和一個(gè)標(biāo)量。在與標(biāo)量比較時(shí),結(jié)果和數(shù)組大小一樣。?a=1:9;b=a>4b=000011111?c=a(a>4)c=567892022/12/22522.4邏輯判斷及流程控制2.4.1關(guān)系操作符2022.4.1關(guān)系操作符矩陣查找和排序子矩陣的查找使用find命令完成,它返回關(guān)系表達(dá)式為真的下標(biāo)。例如:?a=10:20;?find(a>15)ans=7891011矩陣的排序使用sort函數(shù),它將矩陣按照升序排列。2022/12/22532.4.1關(guān)系操作符矩陣查找和排序2022/12/182.4.2邏輯運(yùn)算邏輯操作符定義了一種與或非的關(guān)系表達(dá)式。MATLAB的邏輯操作符有&(與)、|(或)、~(非)、xor(異或)。例如:?c=~(a>4)c=111100000?c=(a>4)&(a<7)c=000011000C=xor(A,B)2022/12/22542.4.2邏輯運(yùn)算邏輯操作符定義了一種與或非的關(guān)系表達(dá)2.4.3其他關(guān)系與邏輯函數(shù)xor(x,y)異或運(yùn)算。x或y非零(真)返回1,x和y都是零(假)或都是非零(真)返回0。any(x)如果在一個(gè)向量x中,任何元素是非零,返回1;矩陣x中的每一列有非零元素,返回1。all(x)如果在一個(gè)向量x中,所有元素非零,返回1;矩陣x中的每一列所有元素非零,返回1。2022/12/22552.4.3其他關(guān)系與邏輯函數(shù)xor(x,y)2022/1%邏輯函數(shù)的運(yùn)用示例。randn('state',1),R=randn(3,6) %創(chuàng)建正態(tài)隨機(jī)陣
L=abs(R)<0.5|abs(R)>1.5
%不等式條件運(yùn)算,結(jié)果給出邏輯數(shù)組
R(L)=0 %"邏輯1"對(duì)應(yīng)的元素賦0值。
s=(find(R==0))' %利用find獲得符合關(guān)系等式條件的元素"單下標(biāo)"
R(s)=111 %利用"單下標(biāo)"定位賦值[ii,jj]=find(R==111); %利用find獲得符合關(guān)系等式條件的元素"雙下標(biāo)"disp(ii'),disp(jj')2022/12/2256%邏輯函數(shù)的運(yùn)用示例。2022/12/1856【例】關(guān)系運(yùn)算運(yùn)用之一:求近似極限,修補(bǔ)圖形缺口。t=-2*pi:pi/10:2*pi; y=sin(t)./t; subplot(1,2,1),plot(t,y),axis([-7,7,-0.5,1.2]),xlabel('t'),ylabel('y'),title('殘缺圖形')tt=t+(t==0)*eps; yy=sin(tt)./tt; subplot(1,2,2),plot(tt,yy),axis([-7,7,-0.5,1.2])xlabel('t'),ylabel('yy'),title('正確圖形')Warning:Dividebyzero.
2022/12/2257【例】關(guān)系運(yùn)算運(yùn)用之一:求近似極限,修補(bǔ)圖形缺口。2022/2022/12/22582022/12/1858【例】邏輯操作應(yīng)用之一:逐段解析函數(shù)的計(jì)算和表現(xiàn)。本例演示削頂整流正弦半波的計(jì)算和圖形繪制。t=linspace(0,3*pi,500);y=sin(t);
z1=((t<pi)|(t>2*pi)).*y; w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);w_n=~w; z2=w*sin(pi/3)+w_n.*z1; subplot(1,3,1),plot(t,y,':r'),ylabel('y')subplot(1,3,2),plot(t,z1,':r'),axis([010-11])subplot(1,3,3),plot(t,z2,'-b'),axis([010-11])2022/12/2259【例】邏輯操作應(yīng)用之一:逐段解析函數(shù)的計(jì)算和表現(xiàn)。本例演示削2022/12/22602022/12/1860【例】寫出生成下圖所示波形的MATLAB腳本文件M文件。圖中虛線為正弦波,要求它的負(fù)半波被置零,且在處被削頂。2022/12/2261【例】寫出生成下圖所示波形的MATLAB腳本文件M文件。圖中t=linspace(0,3*pi,500);y=sin(t);z1=((t<pi)|(t>2*pi)).*y; w=(t>pi/3&t<2*pi/3)+(t>7*pi/3&t<8*pi/3);w_n=~w; z2=w*sin(pi/3)+w_n.*z1; plot(t,y,'r-.',t,z2,'k-')xlabel('x');ylabel('z=f(t)');title('逐段解析函數(shù)');legend('y=sin(t)','z=f(t)');2022/12/2262t=linspace(0,3*pi,500);2022/122.4.4流程控制語句腳本對(duì)于簡(jiǎn)單問題,使用直接輸入命令簡(jiǎn)單有效;對(duì)稍復(fù)雜和多次重復(fù)的應(yīng)用,直接輸入命令比較麻煩。MATLAB提供了邏輯解決方案,它允許用戶把多個(gè)命令放在一個(gè)簡(jiǎn)單的文本文件中,如同在MATLAB中鍵入命令一般,這種文件稱為腳本文件,由于腳本文件以m為擴(kuò)展名,它常稱為M文件。腳本文件為文本形式的,對(duì)跨平臺(tái)處理十分有利。使用腳本文件,可以把命令保存在磁盤上,便于以后的訪問;同時(shí)對(duì)使用大的數(shù)組也帶來的方便;增加注釋可以為腳本中的命令作文擋以免以后忘記。2022/12/22632.4.4流程控制語句腳本2022/12/18632.4.4流程控制語句為了便于應(yīng)用,MATLAB提供了一些流程控制的命令。這些命令對(duì)腳本編寫帶來了一些方便,但是需要注意的是,盡量不要使用這些流程控制命令,尤其是循環(huán)控制命令。If語句很多情況下,命令的序列必須根據(jù)關(guān)系的檢驗(yàn)有條件的執(zhí)行,它由if-else-end結(jié)構(gòu)提供。它的結(jié)構(gòu)如下:ifexpression1commands1elseifexpression2commands2elseif……elsecommandsend2022/12/22642.4.4流程控制語句為了便于應(yīng)用,MATLAB提供了2.4.4流程控制語句在執(zhí)行過程中,MATLAB依次檢查各個(gè)表達(dá)式,只執(zhí)行第一個(gè)表達(dá)式為真的命令串,接下來的關(guān)系表達(dá)式不檢驗(yàn),跳過其余的if-else-end結(jié)構(gòu),而且,最后的else命令可有可無。2022/12/22652.4.4流程控制語句在執(zhí)行過程中,MATLAB依次檢求x=input('x=');ifx>=10y=x^2+3;elseifx>=0y=x^3+4*x;elsey=x^5+x;endyx=input('x=');ifx>=10y=x^2+3;elseifx>=0y=x^3+4*x;elsey=x^5+x;endendy2022/12/2266求x=input('x=');x=input('x=');22.4.4流程控制語句for循環(huán)for循環(huán)允許一組命令以固定的次數(shù)重復(fù),它的一般形式是forx=arraycommandendfor和end之間的命令串按數(shù)組array的每一列執(zhí)行一次,直到n次后終止。如:forj=1:2:10y=j+j.^2;end2022/12/22672.4.4流程控制語句for循環(huán)2022/12/2.4.4流程控制語句for循環(huán)不能使用內(nèi)部重新賦值循環(huán)變量而終止;for循環(huán)內(nèi)部接受任何有效的MATLAB數(shù)組;for循環(huán)可以嵌套;只要有矩陣形式可以解決的問題,不要使用for循環(huán)。使用for循環(huán)的算法執(zhí)行很慢,一個(gè)好的MATLAB算法不應(yīng)當(dāng)出現(xiàn)循環(huán)語句。Tic/toc循環(huán)可以使用break跳出,但只跳出所在的循環(huán),不跳出整個(gè)嵌套結(jié)構(gòu)。2022/12/22682.4.4流程控制語句for循環(huán)不能使用內(nèi)部重新賦值循2.4.4流程控制語句while循環(huán)與for循環(huán)以固定的次數(shù)求一組指令相反,while循環(huán)以不定的次數(shù)求一組語句的值。While循環(huán)的一般形式為:whileexpressioncommondsend只要表達(dá)式expression里的所有元素為真,就執(zhí)行命令串commands。通常表達(dá)式求值給一個(gè)標(biāo)量值,單數(shù)組值也同樣有效。2022/12/22692.4.4流程控制語句while循環(huán)2022/12/1求y=0;forx=1:100y=y+x;endyN=input('N=');y=0;fori=1:Nforj=1:Ny=y+1/(i+j);endendyN=input('N=');y=0;i=1;whilei<=Nj=1;whilej<=Ny=y+1/(i+j);j=j+1;endi=i+1;endy2022/12/2270求y=0;N=input('N=');N=input('N=【例】Fibonacci數(shù)組的元素滿足Fibonacci規(guī)則:
,;且。現(xiàn)要求該數(shù)組中第一個(gè)大于10000的元素a(1)=1;a(2)=1;i=2;whilea(i)<=10000 a(i+1)=a(i-1)+a(i); i=i+1;end;ia(i)i=21ans=10946
2022/12/2271【例】Fibonacci數(shù)組的元素滿足Fibonacci規(guī)用for循環(huán)指令來尋求Fibonacc數(shù)組中第一個(gè)大于10000的元素。n=100;a=ones(1,n);fori=3:na(i)=a(i-1)+a(i-2);ifa(i)>=10000a(i)break;end;Endi結(jié)果:ans=10946i=212022/12/2272用for循環(huán)指令來尋求Fibonacc數(shù)組中第一個(gè)大于1002.4.4流程控制語句Switch語句是一種均衡實(shí)現(xiàn)的多分支語句。SwitchexpressionCase值1
commands1Case值2
commands2…OtherwisecommandsNend2022/12/22732.4.4流程控制語句Switch語句2022/12學(xué)生的成績(jī)管理,用來演示switch結(jié)構(gòu)的應(yīng)用。
clear;fori=1:10a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i;end;c=[d,c];Name={'Jack','Marry','Peter','Rose','Tom'};Mark={72,83,56,94,100};Rank=cell(1,5);S=struct('Name',Name,'Marks',Mark,'Rank',Rank);2022/12/2274學(xué)生的成績(jī)管理,用來演示switch結(jié)構(gòu)的應(yīng)用。clearfori=1:5switchS(i).Markscase100 S(i).Rank='滿分';
casea S(i).Rank='優(yōu)秀';
caseb S(i).Rank='良好';
casec S(i).Rank='及格';
otherwise S(i).Rank='不及格';
endenddisp([‘學(xué)生姓名’,‘得分’,‘等級(jí)’]);disp('')fori=1:5;disp([S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank]);end;
結(jié)果:學(xué)生姓名
得分
等級(jí)
Jack72及格Marry83良好Peter56不及格
Rose94優(yōu)秀
Tom100滿分2022/12/2275fori=1:5結(jié)果:2022/12/18752.5基本繪圖方法2.5.1直角坐標(biāo)中的兩維曲線plot(y)
以y的下標(biāo)作為x坐標(biāo),以y值作為y坐標(biāo)。plot(x,y)
數(shù)組x和y的長(zhǎng)度應(yīng)匹配。每次繪制將清除以前的圖形。2022/12/22762.5基本繪圖方法2.5.1直角坐標(biāo)中的兩維曲線22.5.1直角坐標(biāo)中的兩維曲線圖形的標(biāo)注和圖例1、title(‘text’)%給圖形加上標(biāo)題2、xlabel(‘text’)%給X軸加上說明3、ylabel(‘text’)%給Y軸加上說明4、zlabel(‘text’)%給Z軸加上說明5、text(x,y,’string’)%在圖形指定位置加上說明6、gtext(‘string’)%利用鼠標(biāo)在圖形加上說明7、legend(‘string1’,’string2’,..)%給圖形加圖例8、legendoff%關(guān)閉圖例2022/12/22772.5.1直角坐標(biāo)中的兩維曲線圖形的標(biāo)注和圖例2022/如:作y=sin(t)的二維圖形t=linspace(0,3*pi,200);y=sin(t);plot(t,y);title('y=sin(t)');xlabel('t/s');ylabel('y=sin(t)');text(3,0.4,'y=sin(t)');legend('y=sin(t)');gtext('y=sin(t)')2022/12/2278如:作y=sin(t)的二維圖形2022/12/18782.5.2線型、點(diǎn)型和顏色plot(x,y,’r:’)后面是顏色和線型標(biāo)識(shí)符顏色標(biāo)識(shí)符線型標(biāo)識(shí)符線型y黃.點(diǎn)S正方形標(biāo)記m品紅o圓圈D菱形標(biāo)記c青xX號(hào)^朝上三角形r紅++號(hào)V朝下三角形g綠-實(shí)線>朝右三角形b藍(lán)*星號(hào)<朝左三角形w白:虛號(hào)P五角星k黑-.點(diǎn)劃線H六角星--虛線none無符號(hào)標(biāo)記2022/12/22792.5.2線型、點(diǎn)型和顏色plot(x,y,’r:’)2.5.3多條曲線的繪制1、plot(x1,y1,x2,y2);2、plot(x1,y1,’r’,x2,y2);3、plot(x1,y1)hold是乒乓切換
holdon%圖形保持plot(x2,y2,’r’)
holdoff%解除保持4、plot(t,[y1,y2,y3])%自動(dòng)給顏色和線型。5、plotyy(x1,y1,x2,y2)%可畫2個(gè)不同縱坐標(biāo)的圖2022/12/22802.5.3多條曲線的繪制1、plot(x1,y1,x2,t=0:0.1:3*pi;y1=sin(t);y2=cos(t);plot(t,y1,'r-.',t,y2,'k');xlabel('t/s');ylabel('y1=sin(t),y2=cos(t)');title('y1=sin(t),y2=cos(t)');text(3,0.4,'y1=sin(t)');text(2,0,'y2=cos(t)');legend('y1=sin(t)','y2=cos(t)');2022/12/22812022/12/18812.5.4屏幕控制與其他2維繪圖1.figure%打開圖形窗口2.figure(n)%打開指定圖形窗口3.close%關(guān)閉當(dāng)前圖形窗口4.closeall%關(guān)閉所有圖形窗口5.close(n)%關(guān)閉指定圖形窗口6.clf%清除窗口內(nèi)所有內(nèi)容2022/12/22822.5.4屏幕控制與其他2維繪圖1.figure2.5.4屏幕控制與其他2維繪圖(續(xù))subplot(m,n,p)%圖形分為mxn個(gè)子圖,并指定第p個(gè)。排號(hào)從左到右,從上到下。stem(t,y)%繪脈沖圖stairs(t,y)%繪階梯圖bar(t,y)%繪條形圖errorbar(t,y)%繪誤差條形圖hist(y)%繪直方圖fill(t,y,’r’)%繪填充圖2022/12/22832.5.4屏幕控制與其他2維繪圖(續(xù))subplot(m如y=exp(-0.1t)*sin(t)t=0:0.3:4*pi;y=exp(-0.1*t).*sin(t);figure(3)plot(t,y,'k*');figure(4)subplot(2,2,1);stem(t,y,'k.');title('stem(t,y)');subplot(2,2,2);stairs(t,y,'b');title('stairs(t,y)');subplot(2,2,3);bar(t,y,'g');title('bar(t,y)');subplot(2,2,4);fill(t,y,'r');title('fill(t,y,''r'')');2022/12/2284如y=exp(-0.1t)*sin(t)2022/12/18hist(y)t=0:0.1:4*pi;y=exp(-0.1*t).*sin(t);y1=5.*y.*sin(t);plotyy(t,y,t,y1);2022/12/2285hist(y)2022/12/18852.5.4屏幕控制與其他2維繪圖(續(xù))pause%暫停gridon%增加網(wǎng)格gridoff%取消網(wǎng)格grid%乒乓增加和取消網(wǎng)格loglog%雙對(duì)數(shù)坐標(biāo)log10similogx%半對(duì)數(shù)坐標(biāo),x軸半對(duì)數(shù)similogy%半對(duì)數(shù)坐標(biāo),y軸半對(duì)數(shù)
polar(theta,rho)%極坐標(biāo)圖2022/12/22862.5.4屏幕控制與其他2維繪圖(續(xù))pause2.5.4屏幕控制與其他2維繪圖(續(xù))23、虛數(shù)的繪圖---------Z為虛數(shù)
plot(Z)%實(shí)部為x坐標(biāo),虛部為y軸
plot(t,Z)%虛部丟失axis([xmin,xmax,ymin,ymax])%定義坐標(biāo)axissquare%兩軸坐標(biāo)長(zhǎng)度相等axisequal%兩軸坐標(biāo)刻度相同axistight%坐標(biāo)區(qū)域和圖形吻合set(gca,’xtick’,[-1,3,7,11])%在x軸指定處標(biāo)記刻度2022/12/22872.5.4屏幕控制與其他2維繪圖(續(xù))23、虛數(shù)的繪圖-clear,clft=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t); %y為長(zhǎng)軸,x為短軸subplot(2,3,1);plot(x,y),axisnormal,gridon,title('NormalandGridon')subplot(2,3,2);plot(x,y),axisequal,gridon,title('Equal')subplot(2,3,3);plot(x,y),axissquare,gridon,title('Square')subplot(2,3,4);plot(x,y),axisimage,boxoff,title('ImageandBoxoff')subplot(2,3,5);plot(x,y),axisimagefill,boxofftitle('ImageandFill')subplot(2,3,6);plot(x,y),axistight,boxoff,title('Tight')2022/12/2288clear,clf2022/12/18882022/12/22892022/12/18892.5.5三維曲線和曲面plot3(x,y,z,’r’);%畫三維曲線Plot3(x1,y1,z1,’r’,x2,y2,z2,’b’)t=0:0.02*pi:2*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'b-',x,y,z,'bd');view([-82,58]);boxonlegend('鏈','寶石');2022/12/22902.5.5三維曲線和曲面plot3(x,y,z,’r’2.5.5三維曲線和曲面(續(xù))2.mesh(z)%畫三維網(wǎng)格曲線,z為x,y的函數(shù)
mesh(x,y,z)%常用畫三維網(wǎng)格曲線
mesh(x,y,z,’r’)%帶顏色的三維圖x=-8:0.5:8;y=x’;X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.*X+Y.*Y);Z=sin(R)./R;mesh(Z);2022/12/22912.5.5三維曲線和曲面(續(xù))2.mesh(z)2.5.5三維曲線和曲面(續(xù))3.surf(Z)%由多個(gè)小面組成表面視圖surf(x,y,z)surf(x,y,z,’r’)x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=abs(X)+abs(Y)+eps;Z=sin(R)./R;surf(Z);2022/12/22922.5.5三維曲線和曲面(續(xù))3.surf(Z)2.5.5三維曲線和曲面(續(xù))4.Meshgrid(x,y)%生成網(wǎng)格點(diǎn)坐標(biāo)函數(shù)x=-4:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;surf(X,Y,Z);colormap(hot)%Black-red-yellow-white顏色holdonstem3(X,Y,Z,'bo');2022/12/22932.5.5三維曲線和曲面(續(xù))4.Meshgrid(2.5.5三維曲線和曲面(續(xù))5.view(方位角,俯仰角)%改變視角6.shadingflat%把曲面上的小格平滑掉shadinginterp%更平滑7.rotate3d%旋轉(zhuǎn)8.contour3(Z)%畫等高線9.meshc,surfc%帶等高線的三維作圖10.colormap(hot)%hot,cool,gray,copper,pink,jet,prism11.colorbar%畫彩色條12.hiddenoff%透視被疊壓的圖形
hiddenon%消隱被疊壓的圖形2022/12/22942.5.5三維曲線和曲面(續(xù))5.view(方位角,2.5.5三維曲線和曲面(續(xù))clear,clf[X0,Y0,Z0]=sphere(30); %產(chǎn)生單位球面的三維坐標(biāo)X=2*X0;Y=2*Y0;Z=2*Z0;
%產(chǎn)生半徑為2的球面的三維坐標(biāo)surf(X0,Y0,Z0); %畫單位球面shadinginterp %采用插補(bǔ)明暗處理holdon;mesh(X,Y,Z);colormap(hot);holdoff%采用hot色圖hiddenoff %產(chǎn)生透視效果axisequal,axisoff %不顯示坐標(biāo)軸
2022/12/22952.5.5三維曲線和曲面(續(xù))clear,clf2022.5.5三維曲線和曲面(續(xù))13.Moviein,getframe,movie%動(dòng)畫axisequalM=moviein(16);forj=1:16plot(fft(eye(j+16)));M(:,j)=getframe;endmovie(M,30);14.alpha(v)%透明度控制v∈[0,1]2022/12/22962.5.5三維曲線和曲面(續(xù))13.Movieinclear;clf;shg,x=3*pi*(-1:0.05:1);y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;h=surf(X,Y,Z);colormap(jet);axisoffn=12;mmm=moviein(n); %預(yù)設(shè)畫面矩陣。fori=1:n rotate(h,[001],25); %使圖形繞z軸旋轉(zhuǎn)25度/每次
mmm(:,i)=getframe; %捕獲畫面。endmovie(mmm,5,10) %以每秒10幀速度,重復(fù)播放5次。2022/12/2297clear;clf;shg,2022/12/18972.6M文件及程序調(diào)試M文件可以分為兩種:一種是主程序,一種是子程序即函數(shù)文件。一個(gè)較復(fù)雜的程序往往是由這兩種程序混合組成。2.6.1主程序文件主程序一般用clear,closeall開頭程序主體程序存盤的文件名2022/12/22982.6M文件及程序調(diào)試M文件可以分為兩種:一種是主程序,2.6.2函數(shù)文件把一個(gè)比較大的任務(wù)分解為多個(gè)比較小的任務(wù),它們之間通過調(diào)用實(shí)現(xiàn)參數(shù)傳遞,小任務(wù)可以是函數(shù)。格式:function[out1,out2,…]=函數(shù)名(in1,in2,…)1、函數(shù)調(diào)用常見的函數(shù)調(diào)用形式為:[out1,out2,…]=function(in1,in2,…)一個(gè)函數(shù)可以嵌套,也可以調(diào)用其它的函數(shù),甚至調(diào)用自己(也就是遞歸調(diào)用)。函數(shù)文件,函數(shù)名稱和文件名一般相同。2022/12/22992.6.2函數(shù)文件把一個(gè)比較大的任務(wù)分解為多個(gè)比較小2.6.2函數(shù)文件與腳本文件不同,函數(shù)文件猶如一個(gè)“黑箱”,把一些數(shù)據(jù)送進(jìn)并經(jīng)加工處理,再把結(jié)果送出來。MATLAB提供的函數(shù)指令大部分都是由函數(shù)文件定義的。M函數(shù)文件的特點(diǎn)是:從形式上看,與腳本文件不同,函數(shù)文件的笫一行總是以“function”引導(dǎo)的“函數(shù)申明行”。2022/12/221002.6.2函數(shù)文件與腳本文件不同,函數(shù)文件猶如一2.6.2函數(shù)文件從運(yùn)行上看,與腳本文件運(yùn)行不同,每當(dāng)函數(shù)文件運(yùn)行,MATLAB就會(huì)專門為它開辟一個(gè)臨時(shí)工作空間,稱為函數(shù)工作空間(Functionworkspace)。當(dāng)執(zhí)行文件最后一條指令時(shí),就結(jié)束該函數(shù)文件的運(yùn)行,同時(shí)該臨時(shí)函數(shù)空間及其所有的中間變量就立即被清除。MATLAB允許使用比“標(biāo)稱數(shù)目”較少的輸入輸出宗量,實(shí)現(xiàn)對(duì)函數(shù)的調(diào)用。2022/12/221012.6.2函數(shù)文件從運(yùn)行上看,與腳本文件運(yùn)行不同2.6.2函數(shù)文件由于從結(jié)構(gòu)上看,腳本文件只是比函數(shù)文件少一個(gè)“函數(shù)申明行”,所以只須描述清楚函數(shù)文件的結(jié)構(gòu)。典型M函數(shù)文件的結(jié)構(gòu)如下:函數(shù)申明行:位于函數(shù)文件的首行,以關(guān)鍵字functio開頭,函數(shù)名以及函數(shù)的輸入輸出宗量都在這一行被定義。笫一注釋行:緊隨函數(shù)申明行之后以%開頭笫一注釋行。該行供lookfor關(guān)鍵詞查詢和help在線幫助使用。2022/12/221022.6.2函數(shù)文件由于從結(jié)構(gòu)上看,腳本文件只是比函2.6.2函數(shù)文件在線幫助文本區(qū):笫一注釋行及其之后的連續(xù)以%開頭的所有注釋行構(gòu)成整個(gè)在線幫助文本。編寫和修改記錄:與在線幫助文本區(qū)相隔一個(gè)“空”行,也以%開頭,標(biāo)志編寫及修改該M文件的作者和日期等。函數(shù)體:為清晰起見,它與前面的注釋以“空”行相隔。2022/12/221032.6.2函數(shù)文件在線幫助文本區(qū):笫一注釋行及其之2.6.2函數(shù)文件需要注意函數(shù)文件的放置位置,一般自己的函數(shù)文件放在當(dāng)前目錄;如果對(duì)一個(gè)專題有了足夠多的函數(shù),可以生成一個(gè)工具箱,放在一個(gè)固定的目錄下,并在MATLAB中加入這個(gè)目錄路徑即可。使用函數(shù)可以加快計(jì)算速度。MATLAB首次執(zhí)行一個(gè)函數(shù)時(shí),它將打開的文件編譯為存儲(chǔ)器內(nèi)部形式,加速了執(zhí)行速度。普通的m文件不被編譯,在每次編譯時(shí),文件將逐行解釋執(zhí)行。函數(shù)的前一部分注釋為幫助行,在使用help命令是看到的為這些注釋行。2022/12/221042.6.2函數(shù)文件需要注意函數(shù)文件的放置位置,一般自2.6.2函數(shù)文件2、參數(shù)傳遞MATLAB函數(shù)的輸入輸出數(shù)目都可以變化,通過這個(gè)特性,可以實(shí)現(xiàn)一些自定義的功能。函數(shù)的輸入輸出參數(shù)數(shù)目可以通過變量nargin和nargout獲得。函數(shù)調(diào)用中可以使用少于規(guī)定的輸入輸出參數(shù)數(shù)目,但是不能更多。在MATLAB中,參數(shù)具有自己的專有工作空間。函數(shù)中的參數(shù)和命令行參數(shù)不在一個(gè)空間中,它們的唯一聯(lián)系為函數(shù)的輸入輸出變量。輸入?yún)?shù)在函數(shù)中是可讀的,但任何改動(dòng)不會(huì)傳遞回上一級(jí)空間。使用global命令可以將變量說明為全局的,則在函數(shù)、命令行等都可以共享這些變量。在實(shí)際應(yīng)用中,應(yīng)當(dāng)盡量避免使用全局變量。2022/12/221052.6.2函數(shù)文件2、參數(shù)傳遞2022/12/1812.6.2函數(shù)文件3、函數(shù)注意函數(shù)可以按少于函數(shù)M文件中所規(guī)定的輸入和輸出變量進(jìn)行調(diào)用,但不能用多于函數(shù)M文件中所規(guī)定的輸入和輸出變量數(shù)目。如果輸入和輸出變量數(shù)目多于函數(shù)M文件中function語句一開始所規(guī)定的數(shù)目,則調(diào)用時(shí)自動(dòng)返回一個(gè)錯(cuò)誤。當(dāng)調(diào)用一個(gè)函數(shù)時(shí),所用的輸入和輸出的參量的數(shù)目,在函數(shù)內(nèi)是規(guī)定好的。函數(shù)工作空間變量nargin包含輸入?yún)⒘總€(gè)數(shù);函數(shù)工作空間變量nargout包含輸出參量個(gè)數(shù)。事實(shí)上,這些變量常用來設(shè)置缺省輸入變量,并決定用戶所希望的輸出變量。在M文件函數(shù)里,變量nargout可用來檢驗(yàn)輸出參量的個(gè)數(shù),并按要求修正輸出變量的創(chuàng)建。2022/12/221062.6.2函數(shù)文件3、函數(shù)注意2022/12/1812.6.2函數(shù)文件函數(shù)有它們自己的專用工作空間,它與MATLAB的工作空間分開。函數(shù)內(nèi)變量與MATLAB工作空間之間唯一的聯(lián)系是函數(shù)的輸入和輸出變量。如果函數(shù)任一輸入變量值發(fā)生變化,其變化僅在函數(shù)內(nèi)出現(xiàn),不影響MATLAB工作空間的變量。函數(shù)內(nèi)所創(chuàng)建的變量只駐留在函數(shù)的工作空間,而且只在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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版租賃住宅合同
- 2024年隴南市市屬事業(yè)單位考試真題
- 二年級(jí)上冊(cè)數(shù)學(xué)教案-總復(fù)習(xí)3|北師大版
- 2024年合肥長(zhǎng)豐縣水湖鎮(zhèn)招聘城市管理執(zhí)法輔助人員真題
- 2024年甘肅人力資源服務(wù)股份有限公司招聘真題
- 農(nóng)村建房安裝合同范本
- 廢除的設(shè)計(jì)合同范本
- 地理西亞第1課時(shí)課件-2024-2025學(xué)年七年級(jí)地理下學(xué)期(人教版2024)
- 修理電機(jī)勞務(wù)合同范本
- 藝術(shù)班轉(zhuǎn)讓合同范本
- 2025合同模板個(gè)人車位轉(zhuǎn)讓合同 范本
- 企業(yè)集團(tuán)文件與檔案管理制度
- 采礦工程畢業(yè)設(shè)計(jì)(論文)-趙固二礦180萬ta新井設(shè)計(jì)
- 第3章軌道車輛牽引計(jì)算
- 基于JSP的校園網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)論文
- 足球比賽登記表
- Bimco標(biāo)準(zhǔn)船舶管理合同(新版)
- 煙草專賣局日???jī)效考評(píng)實(shí)施辦法
- 基于仿生原理風(fēng)電葉片氣動(dòng)控制研究 宋娟娟
- 商業(yè)中心項(xiàng)目可行性研究報(bào)告
- 課程設(shè)計(jì)-聚丙烯酰胺生產(chǎn)工藝設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論