Matlab基本語法教案_第1頁
Matlab基本語法教案_第2頁
Matlab基本語法教案_第3頁
Matlab基本語法教案_第4頁
Matlab基本語法教案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2.1MATLAB的矩陣、變量與表達式在MATLAB系統(tǒng)中,只管理著一種對象---矩陣(包括復數(shù)矩陣),任何數(shù)量在MATLAB中是作為1x1的矩陣來處理的。一、矩陣的創(chuàng)建:1.在MATLAB中創(chuàng)建矩陣的原則:(1)矩陣元素必須寫在“[]”內(nèi);(2)矩陣的同一行之間用空格或“,”分隔;(3)矩陣的行與行之間用分號或回車符分隔;(4)矩陣的尺寸不必預先定義;(5)矩陣元素可以是數(shù)值、變量、表達式或函數(shù)。2.創(chuàng)建矩陣的四種方法。(1)在命令窗口直接輸入:如輸入:A=[1,2,3;4,5,6;7,8,9]則顯示:A=123456789也可用空格代替逗號,用回車代替分號:如上例:A=[123456789]則顯示:A=123456789(2)由M文件創(chuàng)建矩陣:有時編程需要用M文件創(chuàng)建矩陣?;蛘弋斁仃嚦叽巛^大時,可以按矩陣的輸入方式編輯一個M文件(可用循環(huán)程序來做),在命令窗口直接執(zhí)行該文件,即可將矩陣調(diào)入工作空間。(3)由函數(shù)創(chuàng)建矩陣:對于一些特殊的矩陣,可以利用MATLAB的內(nèi)部函數(shù)或用戶自定義函數(shù)創(chuàng)建矩陣。如diag()函數(shù)可生成對角陣。ones(m,n);zeros(m,n)(4)通過數(shù)據(jù)文件創(chuàng)建矩陣:save文件名(其中,文件名是*.mat文件)load文件名例:工作目錄下有temp.mat文件,可以執(zhí)行l(wèi)oadtemp3.復數(shù)矩陣表示(1)復數(shù)表示復數(shù)的虛根單位用i,j表示,即:z=3+4i或z=3+4j.例如輸入z=3+4i輸入z=3+4j得到:得到:z=z=3.0000+4.0000i3.0000+4.0000i(2)復數(shù)矩陣A=[12;34]+i*[56;78]或者A=[1+5i2+6i;3+7i4+8i],都得到:A= 1.0000+5.0000i2.0000+6.0000i3.0000+7.0000i4.0000+8.0000i二、MATLAB的變量和表達式1.變量名命名規(guī)則可以是字母、數(shù)字或下劃線,但第一個字符必須是字母。長度<=31分辨大小寫的,M和m是兩個變量。無須對變量的類型進行說明,當需要使用一個新變量時,只須直接對其賦值即可。2.表達式則是由運算符、函數(shù)調(diào)用、變量名以及特殊字符組成的式子。3.MATLAB中基本的賦值語句為:(1)形式一:變量名=表達式將表達式的結(jié)果賦給變量名(表達式的運算結(jié)果都是一個矩陣)。(2)形式二:表達式計算表達式的值,將其值賦給MATLAB的永久變量ans。上面兩種形式,當表達式由分號“;”結(jié)束時,變量結(jié)果不顯示。當表達式由逗號“,”或換行號結(jié)束,則將結(jié)果顯示出來。注:1)MATLAB中有幾個變量不能被clear清除,稱永久變量。(其他變量名最好不要與此同)。即ans:當不指明某一語句的計算結(jié)果賦給哪個變量時,系統(tǒng)自動將該計算結(jié)果賦給ans;eps:計算機能產(chǎn)生的絕對值最小的浮點數(shù);i,j:虛數(shù)單位,即-1的平方根;inf,Inf:正無窮大;nan,NaN:非數(shù),常產(chǎn)生于0/0等運算;Pi:圓周率。2)如果表達式的值太復雜,一行寫不下,可以加上三連點“…”回車,然后接下去再寫。如:s=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8+1/9-1/10+1/11-1/12;3)在MATLAB函數(shù)調(diào)用時,MATLAB還允許有這樣的形式,如[m,p]=bode(n,d,w);4.字符串與字符串變量:MATLAB可將字符串當作數(shù)組或矩陣處理。在MATLAB中,字符串用單引號括起來,如:例:S=‘UseMatlab’輸出結(jié)果是:S=UseMatlab字符串存儲在行向量中,每個元素對應一個字符,向量的值為字符對應的ASCII碼值。2.2MATLAB的初等運算一、矩陣運算符:A’---矩陣A的轉(zhuǎn)置,如果A是復矩陣,則其運算結(jié)果是共軛轉(zhuǎn)置;A+B---矩陣的加運算,A-B---矩陣的減運算,A*B---矩陣相乘,A的列數(shù)與B的行數(shù)相等,即A和B矩陣維數(shù)相容,維數(shù)不相容是不可乘的。如:A---nxm,B---mxr,若C=A*B,則:C---nxr。B/A---方程X*A=B的解,即X=B*A-1。稱矩陣的右除。A\B---方程A*X=B的解,即X=A-1*B。稱矩陣的左除。矩陣的除法,其意義相當于矩陣的求逆運算。左除與右除的關系為:b/a=(a’\b’)’。A^B---矩陣的乘方。1)A為方陣,B為正整數(shù)時,表示矩陣A的B次乘積;2)B為負整數(shù)時,表示矩陣A的逆陣的B次乘積;3)B為非整數(shù)時,如B=n/m,則首先應該將A矩陣自乘n次,然后再對結(jié)果開m次方;4)A、B均為矩陣時無意義。A.*B---矩陣的點乘運算,表示A和B陣的對應元素直接相乘,A和B要有相同的維數(shù)。點運算在MATLAB中起重要的作用,如X是一個向量,則求取X2時不能直接寫成X*X,而必須寫成X.*X。A.\B,A./B---矩陣的點除運算,表示A和B陣的對應元素直接相除,A和B要有相同的維數(shù)。A.^B---矩陣的點乘方,表示要對其元素逐一進行冪運算。與點乘相似。二、關系運算符:MATLAB中提供了6種關系運算符,用于比較兩個同維數(shù)的矩陣:<小于<=小于或等于>大于>=大于或等于==等于~=不等于關系運算符可以用于檢查矩陣的元素是否滿足某些條件。兩個同維數(shù)的矩陣比較的結(jié)果是與它們同維數(shù)的0、1矩陣,1表示結(jié)果為真,0表示結(jié)果為假。三、邏輯運算符:在MATLAB中,邏輯運算符有3種。&邏輯與。當運算雙方對應元素都為非零時;結(jié)果為1,否則,結(jié)果為0。|邏輯或。當運算雙方對應元素有一個為非零時;結(jié)果為1,否則,結(jié)果為0。~邏輯非。當元素的值為0時,結(jié)果為1,否則,結(jié)果為0。例:a=[103;0–16],b=[-100;050.3],計算兩矩陣對應元素的邏輯關系。>>a&b>>a|b>>~a>>~bans=100011ans=101011ans=010100ans=011100四、特殊運算符:在MATLAB中,有一些特殊的符號,具有特殊的意義。1)在MATLAB的M文件中,可以加入解釋行,解釋行的標識符為:“%”,該符號后面的內(nèi)容將作為注釋內(nèi)容。2)行分隔符:“;”用在MATLAB語句后,用它時執(zhí)行結(jié)果不顯示,可避免顯示一些不感興趣的結(jié)果。3)冒號運算符“:”最主要的作用是生成向量。如:j:k---生成向量[j,j+1,j+2,…,k]j:i:k---生成向量[j,j+i,j+2i,j+3i,…,k](j為起始值,i為步距,k為終止值,在仿真中經(jīng)常用于生成時間向量)A(:,j)---矩陣A的第j列A(i,:)---矩陣A的第i行A(j:k)---生成向量A(A為向量時,為A的第j到第k個元素,當A為矩陣時,為A的按列數(shù)的第j到第k個元素)例:A=123456789>>A(2:4)ans=472A(:,j:k)---矩陣A的從第j列到第k列的矩陣子塊A(:,[j,k])---矩陣A的第j列和第k列例:A=123456789>>A(:,1:2)ans=124578>>A(:,[1,3])ans=1346794)MATLAB中允許對一個矩陣的單個元素進行賦值,如:A=123456789當執(zhí)行A(2,3)=100,則顯示:A=12345100789注意:矩陣中元素按列存儲,上例中對矩陣元素操作也可這樣調(diào)用A(8)=8對于一個矩陣中0元素很多,而非0元素很少的情況,可以先形成0矩陣,然后將非0元素輸入。如果給出的行數(shù)和列數(shù)大于原矩陣范圍,則將自動擴展原來的矩陣,并將擴展后未賦值的矩陣元素置為0。如:A(4,5)=8A=123004560078900000082.3MATLAB語句一、輸入輸出語句:MATLAB提供了一些輸入和輸出語句,允許用戶和計算機之間進行數(shù)據(jù)交換。1.INPUT輸入函數(shù):在編程時,如果想隨時改變輸入?yún)?shù)值,可采用input()函數(shù)來進行輸入,它的調(diào)用格式為:A=input(提示信息,選項);提示信息可以是字符串顯示,用它來提示輸入的是什么樣的數(shù)據(jù),如:>>A=input('EntermatrixA=>')EntermatrixA=>[123;456;789]A=123456789如果在input()函數(shù)調(diào)用時采用了‘s’選項,則允許用戶輸入字符串。如:>>A=input('EntermatrixA=>','s')EntermatrixA=>matlabA=Matlab2.DISP輸出函數(shù):MATLAB提供的輸出函數(shù)主要有disp()函數(shù),它的調(diào)用格式為:disp(A)其中A既可以為字符串,也可以為矩陣3.將數(shù)值轉(zhuǎn)換成字符串輸出:MATLAB還提供了較實用的字符串處理及轉(zhuǎn)換函數(shù),如:int2str()函數(shù)可以方便地將一個整形數(shù)據(jù)轉(zhuǎn)換成字符串形式,該函數(shù)的調(diào)用格式為:例1:>>cstr=int2str(i)例2:>>Inum=15;>>disp(['ThevalueofInumis'int2str(Inum),'!ok'])ThevalueofInumis15!ok注意:在矩陣中,每一個元素之間要有空格或逗號。二、循環(huán)語句:MATLAB提供了兩種循環(huán)方式:for-end循環(huán)和while-end循環(huán)。1.for循環(huán)語句:for循環(huán)語句為計數(shù)循環(huán)語句。如果要反復執(zhí)行的一組語句的循環(huán)次數(shù)是已知的或預定義的,就可以使用for循環(huán)語句。它的基本格式為:for循環(huán)變量=表達式1:表達式2:表達式3循環(huán)語句組end上面的表達式1表示循環(huán)初值,表達式3表示循環(huán)終值,表達式2是步長,該式相當于冒號表達式。當步長為1時,表達式2可省略。如:S1=1;S2=0.1;S3=10;forI=S1:S2:S3X(I)=0end注:1)如果表達式3的值<表達式1的值,語句仍是合法的,但MATLAB不執(zhí)行循環(huán)內(nèi)的語句;2)for和end必須配對使用;3)for語句還可以嵌套,但每一個for必須與一個end配對使用。如:m=3;n=4;fori=1:mforj=1:nA(i,j)=1/(i+j-1)endend例題:求的值。程序為:mysum=0;fori=1:100mysum=mysum+i;enddisp(mysum)2.while循環(huán)語句:while循環(huán)語句是條件循環(huán)語句,它的作用是在一定的邏輯條件控制下,不斷地循環(huán)執(zhí)行一條或一組語句,直到邏輯條件不再滿足為止。適用于循環(huán)次數(shù)事先不知道的情況。它的基本結(jié)構(gòu)while條件式循環(huán)語句組end它的執(zhí)行方式是:若條件成立,則執(zhí)行循環(huán)體,再判斷表達式是否仍然成立,如不成立則跳出循環(huán),向下執(zhí)行。如將上例改用while循環(huán),則可寫出下列程序:sum=0;i=1;whilei<=100sum=sum+i;i=i+1;end注:1)允許多級嵌套;2)while和end必須配對使用;3)for形循環(huán)和while形循環(huán)也允許相互嵌套。三、條件控制語句:1.if條件轉(zhuǎn)移語句:if條件式條件塊語句組end或:if條件式條件塊語句組1else條件塊語句組2end或:if條件式1條件塊語句組1elseif條件式2條件塊語句組2else條件塊語句組3……end2.break語句:break語句的作用一般是終止循環(huán)過程,退出循環(huán)體。常與if語句一起使用。例:將上例中給出的問題變成:求出滿足>10000的最小m。則程序為:mysum=0;form=1:1000ifmysum>10000,break;endmysum=mysum+m;enddisp(m)四、分支語句:switch語句switch語句可實現(xiàn)多分支的條件選擇,在功能上與if-elseif-elseif-…else結(jié)構(gòu)相似。switch表達式case表達式1語句組1case表達式2語句組2……case表達式n語句組notherwise語句組end執(zhí)行過程:switch后面表達式的值可以是數(shù)值變量或字符串變量,通過比較該值與case后面的值來決定執(zhí)行哪部分。如與哪一個case的值相同就執(zhí)行哪一個下面的語句組,如果與所有case的值都不同,則執(zhí)行otherwise

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論