信號與系統(tǒng)MATLAB基本語法_第1頁
信號與系統(tǒng)MATLAB基本語法_第2頁
信號與系統(tǒng)MATLAB基本語法_第3頁
信號與系統(tǒng)MATLAB基本語法_第4頁
信號與系統(tǒng)MATLAB基本語法_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章第二章 基本語法基本語法n2.1 2.1 變量及其賦值變量及其賦值n2.2 2.2 矩陣的初等運算矩陣的初等運算 n2.3 2.3 元素群運算元素群運算 n2.4 2.4 邏輯判斷與流程控制邏輯判斷與流程控制n2.5 2.5 基本繪圖方法基本繪圖方法n2.6 M2.6 M文件及程序調(diào)試文件及程序調(diào)試2.1 變量及其賦值n(1) 變量與常量n(2) 數(shù)字變量的運算與顯示格式n(3) 字符串n(4) 矩陣及其元素的賦值n(5) 復(fù)數(shù)n(6) 變量檢查n(7) 基本賦值矩陣1、變量與常量n標(biāo)識符:標(biāo)識符是標(biāo)志變量名、常量名、函數(shù)名和文件名的字符串的總稱。nMATLAB中的中的標(biāo)識符最長允許19

2、個字符 ,合法字符是52個英文字母(大小寫看成不同字符)、10個數(shù)字和下劃線。n第一個字符必須是英文字母.常見的常量 常 量 表 示 數(shù) 值 pi圓周率 eps浮點運算的相對精度 inf正無窮大 NaN表示不定值 realmax最大的浮點數(shù) i, j虛數(shù)單位2、數(shù)字變量的運算與顯示格式n對于簡單的數(shù)字運算,如計算2和3的乘積再加1時,可以直接在命令窗口輸入: 1+2*3 ans= 7n也可以輸入: a=1+2*3 a= 7MATLAB中的數(shù)中的數(shù)nMATLAB中的實數(shù)只有一種數(shù)據(jù)格式,那就是雙精度(即64位二進制或8 8個字節(jié)個字節(jié)),它的有效值是十進制16位,動態(tài)范圍是10的308次冪。 2

3、.225110 3081.797710+308 n 數(shù)的存儲和運算全按同一格式進行,使編程簡單,減少差錯,改善人機交互,付出代價是內(nèi)存空間和運行速度,形成MATLAB的一大特色。數(shù)的八種顯示格式MATLAB 命令顯 示 形 式說 明 format long3.1415926535897916位十進制數(shù) format short e3.1416e+0005位十進制數(shù)加指數(shù) format long e 3.14159265358979e+016位十進制加指數(shù) format hox400921fb54442d1816位十六進制數(shù) format bank3.14兩位小數(shù) format + + 正、負或

4、零 format rat 355 / 113 有理數(shù)分?jǐn)?shù)近似format short (默認(rèn)) 3.1416二位整數(shù), 四位小數(shù) 3、字符串nMATLAB中所有的字符串都用單引號進行輸入或賦值,字符串的每個字符(包括空格)都是字符數(shù)組的一個元素。例如: s=matrix laboratory; s= n matrix laboratory4 4、矩陣及其元素的賦值、矩陣及其元素的賦值 n格式1:變量表達式(或常量) n格式2:表達式表達式中的運算符有:加(+)、減(-) 、乘(*) 、左除() 、右除(/) 、指數(shù)() 、共軛轉(zhuǎn)置()、矩陣()等。表達式的結(jié)尾標(biāo)點:若為分號;,不顯示結(jié)果;若為

5、逗號,或直接回車,顯示運算結(jié)果。5、復(fù)數(shù)、復(fù)數(shù)n虛數(shù)符號MATLAB啟動時定為i,j,可以不用乘號,連寫在數(shù)字后面。n如果用戶在程序中另外給i,j賦值,則它們的虛數(shù)意義就失效。n conj(x)表示共軛,即把x的虛部反號。n 是共軛轉(zhuǎn)置運算符,對實矩陣把行號與列號交換,對復(fù)矩陣除行列交換外,還要把矩陣元素取共軛。6 6、變量檢查、變量檢查n變量檢查命令who,whosn打開工作空間視窗n在檢查中不顯示內(nèi)部變量eps,realmax,realmin,pii,j,inf,NaN7、特殊矩陣賦值函數(shù)zeros(n,m)全零矩陣(nm階)ones(n,m)全1矩陣(nm階)rand(n,m)隨機數(shù)矩陣

6、(nm階)randn (n,m)正態(tài)隨機數(shù)矩陣(nm階)eye(n)單位矩陣( nn方陣)linspace(xs,xf,N)均分向量(1N階數(shù)組) 2.2 2.2 矩陣的初等運算矩陣的初等運算 n(1)矩陣數(shù)值的表示方法;n(2)矩陣的加減乘法;n(3)矩陣的除法和線性方程 解;n(4)矩陣的乘方和冪次函數(shù);矩陣的加減法矩陣的加減法n兩矩陣進行加減的條件是其行數(shù)和列數(shù)相同,簡稱階次相同,矩陣的加減即其對應(yīng)元素的加減。size(A)=size(B)如果其中一個變量是標(biāo)量,則會自動擴展成各元素均取此標(biāo)量值的同階次矩陣。矩陣的乘法矩陣的乘法c(i,j)=a(i,1)*b(1,j) + a(i,2)*

7、b(2,j) + + a(i,p)*b(p,j) = pa(i,k)*b(k,j)(1,1)(1, )(1,1)(1, )(1, )(1,1)(1, )(2, )(, )(,1) (,2)(, ) *( ,1)( , )( ,1)( , )( , )( ,1)( , )aapbbjb mcc mbjci jaiaiai pc nc n mb pb p jb p ma na n p 矩陣的乘法矩陣的乘法n兩矩陣相乘兩矩陣相乘C=A*B的條件是的條件是A的列數(shù)等的列數(shù)等于于B的行數(shù),簡稱內(nèi)階數(shù)相同。設(shè)的行數(shù),簡稱內(nèi)階數(shù)相同。設(shè)矩陣矩陣A 為為np階,矩陣階,矩陣B為為pm階,則階,則C是是nm階。

8、階。內(nèi)階數(shù)不同的矩陣不能相乘。內(nèi)階數(shù)不同的矩陣不能相乘。n不符合交換律:不符合交換律:A*BB*A,左乘不等,左乘不等于右乘;于右乘;n若一個變量是標(biāo)量,則按標(biāo)量乘法。若一個變量是標(biāo)量,則按標(biāo)量乘法。矩陣除法線性方程組線性方程組D D* *X=BX=B,如果,如果D D非奇異,非奇異,即它的逆矩陣即它的逆矩陣inv(D)inv(D)存在;存在;則其解用則其解用MATLABMATLAB表為表為 : X=inv(D)X=inv(D)* *B=DBB=DB符號符號稱為左除,即分母放在左稱為左除,即分母放在左邊。邊。左除的條件:左除的條件:B B的行數(shù)等于的行數(shù)等于D D的階數(shù)的階數(shù)(D(D的行數(shù)和列

9、數(shù)相同,簡稱階數(shù))的行數(shù)和列數(shù)相同,簡稱階數(shù))矩陣右除若方程組表為為若方程組表為為X X* *D1=B1D1=B1,D1D1非奇異,非奇異,即它的逆陣即它的逆陣inv(D1)inv(D1)存在。存在。則其解為則其解為X=B1X=B1* *inv(D1)=B1/D1inv(D1)=B1/D1符號符號/稱為右除。稱為右除。右除的條件:右除的條件:B1B1的列數(shù)等于的列數(shù)等于D D的階數(shù)的階數(shù)(D(D的行數(shù)和列數(shù)相同,簡稱階數(shù))的行數(shù)和列數(shù)相同,簡稱階數(shù))線性方程組表為矩陣相乘 x1 + 2 x2 + 3 x3 = 23 x1- 5 x2 + 4 x3 = 07 x1 + 8 x2 + 9 x3 =

10、 2可以表為可以表為故有故有 X=x1;x2;x3=Ab1231 2 32*35 407 8 92xA Xxbx 用矩陣除法解線性方程組解方程組 6 x1 + 3 x2 + 4 x3 = 3 -2 x1 + 5 x2 + 7 x3 = -4 8 x1 - 4 x2 - 3 x3 = -7的程序為: A = 6,3,4; -2,5,7; 8,-4,-3; B = 3;-4;-7; X = AB矩陣整體的冪次運算nMATLAB的乘冪函數(shù)”、指數(shù)函數(shù)expm、對數(shù)函數(shù)logm、和開方函數(shù)sqrtm是對矩陣進行的,另外,還有矩陣乘法和除法也是把矩陣作為一個整體來運算。n除此之外,其他MATLAB函數(shù)都

11、是對矩陣中的元素分別進行的。 2.3 2.3 元素群運算元素群運算 n 數(shù)組及其賦值n 元素群的四則運算n 元素群的冪次運算n 元素群的函數(shù)元素群運算能大大簡化編程,提高運算的效率,是MATLAB優(yōu)于其他許多語言的一個特色。 1、數(shù)組及其賦值、數(shù)組及其賦值n數(shù)組通常是指單行或單列的矩陣,也稱為向量。n其賦值方法:n(1) x=初值:增量:終值n(2) 線性分割函數(shù) x=linspace(起點,終點,點數(shù))2、元素群的四則和冪次運算、元素群的四則和冪次運算n元素群運算:就是把兩矩陣按逐個元素進行運算。為了與矩陣作為整體的運算符號相區(qū)別,要在運算符“*、”前加一點符號“” 。元素群運算的英文原文是

12、數(shù)組運算 (Array Algorithm),實際上它適用于任何階的矩陣,故取名元素群運算更為確切。3、元素群的函數(shù)運算、元素群的函數(shù)運算n所有的MATLAB函數(shù)都適用于作元素群運算,只有專門說明的幾個除外。就是*、/、 運算符和sqrtm、expm、logm三個函數(shù)。n實例,做一個三角函數(shù)表:x=0:0.1:pi/4;x,sin(x),cos(x),tan(x)常見做元素群運算的函數(shù)見書上表22.4 邏輯判斷及流程控制n關(guān)系運算n邏輯運算n流程控制語句關(guān)系運算n所謂關(guān)系運算是指兩個元素之間數(shù)值的比較,一共有如下所示的6種可能 n關(guān)系運算的結(jié)果只有兩種可能,即0或1。0表示該關(guān)系式為“假,即它

13、不成立;1表示該關(guān)系式為“真”,即該關(guān)系式是正確的。 例如,鍵入關(guān)系式: a2+2=4 得 a=1關(guān)系運算nMATLAB的關(guān)系運算也都適用于矩陣,它是對矩陣的各個元素進行元素群運算,因此兩個相比較的矩陣必須有相同的階數(shù),輸出的結(jié)果也是同階矩陣。例如鍵入 A=magic(6)n要找到A陣中所有被3整除的元素,并在其位置上標(biāo)以1。可以用rem函數(shù)來完成,rem(A,3)表示A除以3的余數(shù),余數(shù)為零就是整除。可以鍵入 p=(rem(A,3)=0)邏輯運算n邏輯量只能取0 (假) 和1真) 兩個值。n邏輯量的基本運算為與(&)、或(| )和非()三種。有時也包括異或(xor),不過異或可以由三

14、種基本運算組合而成。n兩個邏輯量經(jīng)此邏輯運算后的輸出仍然是邏輯量,表示邏輯量的輸入輸出關(guān)系的表稱為真值表,見書上表4流程流程控制語句 計算機程序通常都是從前到后逐條執(zhí)行的。但有時也會根據(jù)實際情況,中途改變執(zhí)行的次序,稱為流程控制。 MATLAB共有4種流程控制語句n for 語句n while 循環(huán)n if-else-end語句n switch語句for 語句nfor語句的結(jié)構(gòu)形式為 : for k=初值:增量:終值 語句組A; end 即它把語句組A反復(fù)執(zhí)行N次。在每次執(zhí)行時程序中的k值不同。 N = 1+(終值初值) / 增量 舉例如下: for n=1:10 x(n)=sin(n*pi/

15、10); endfor 語句n為了得到最大的速度,在for循環(huán)被執(zhí)行之前,應(yīng)預(yù)先分配數(shù)組。例如,前面所舉的例子,在for循環(huán)內(nèi)每執(zhí)行一次命令,變量x的大小增加1。迫使MATLAB每通過一次循環(huán)要花費時間對x分配更多的內(nèi)存。為了消去這個步驟,for循環(huán)的例子可重寫為 x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); endn現(xiàn)在,只有x(n)的值需要改變while 循環(huán)nwhile循環(huán)的一般形式是: while (表達式) 語句組A endn只要在表達式里的邏輯值為真,就執(zhí)行while和end 語句之間的語句。當(dāng)表達式的邏輯值為假時,就退出當(dāng)前的循環(huán)。wh

16、ile 循環(huán)n在while循環(huán)語句中,在語句內(nèi)必須有可以修改循環(huán)控制變量的命令,否則該循環(huán)語言將陷入死循環(huán)中。n除非循環(huán)語句中有控制退出循環(huán)的命令,如break語句。當(dāng)程序流程運行至該命令時,則不論循環(huán)控制變量是否滿足循環(huán)判斷語句均將退出當(dāng)前循環(huán),執(zhí)行循環(huán)后的其他語句。n與break語句對應(yīng),MATLAB還提供了continue命令用于控制循環(huán),當(dāng)程序流運行至該命令時會忽略其后的循環(huán)體操作轉(zhuǎn)而執(zhí)行下一層次的循環(huán)。 if-else-end語句nif-else-end語句的一般形式為: if表達式 邏輯表達式值為“真”時執(zhí)行的語句 else 邏輯表達式值為“假”時執(zhí)行的語句 endn在MATLAB

17、語言的if-else-end語句中的else子句是可選項,即語句中可以不包括else子句的條件判斷。if-else-end語句n在程序設(shè)計中,也經(jīng)常碰到需要進行多重邏輯選擇的問題,這時可以采用if-else-end語句的嵌套形式: if(表達式1) 邏輯表達式1的值為“真”時的執(zhí)行語句 elseif(表達式2) 邏輯表達式2的值為“真”時的執(zhí)行語句 elseif(表達式3) else 當(dāng)以上所有的邏輯值均為假時的執(zhí)行語句end switch語句nswitch-case-otherwise語句是一種均衡實現(xiàn)的多分支語句,其基本語言結(jié)構(gòu)可表為: switch 表達式(標(biāo)量或字符串) case 值1

18、 語句組A case 值2 語句組B otherwise 語句組N end2.5 M文件及程序調(diào)試nMATLAB在命令窗中運行的方式有兩種 行命令方式鍵入命令行 執(zhí)行程序文件方式鍵入程序名n程序文件稱為M文件,都是ASCII文本, 分為兩種 主程序文件Script file 函數(shù)程序文件Function file主程序文件主程序文件主程序文件的格式特征如下:n (1)用clear, close all等語句開始。n (2)程序的主體。 如果文件中有全局變量,即在子程序中與主程序共用的變量,應(yīng)在程序的起始部分注明。其語句是 global 變量名1 變量名2 .n (3)整個程序應(yīng)按MATLAB標(biāo)

19、識符的要求起文件名。n舉例說明:人機交互命令人機交互命令n在對程序的運行進行觀察或干預(yù),或者調(diào)試程序時,人機交互命令不可少。n這些命令可以MATLAB語言結(jié)構(gòu)庫中調(diào)用。下面介紹幾條: echo on(off) 一般情況下,M文件中的命令不會顯示在屏幕上。而在命令echo on之后,會在執(zhí)行每行程序前先顯示其內(nèi)容。 pause(n) 程序執(zhí)行到此處,暫停n秒,再繼續(xù)執(zhí)行。如果沒有括號參數(shù),則等待用戶鍵入任意鍵后才繼續(xù)執(zhí)行。人機交互命令人機交互命令keyboard 程序執(zhí)行到此處暫停,在屏幕上顯示字符K.并把程序的輸入和執(zhí)行權(quán)交給用戶(鍵盤)。如果需要系統(tǒng)恢復(fù)運行原來的程序,只需鍵入字符串retu

20、rn.input(提示符) 程序執(zhí)行到此處暫停,在屏幕上顯示引號中的字符串。 如程序為x=input(x=),則屏幕上顯示x= disp用來顯示字符串和數(shù)據(jù)的輸出 人機交互命令人機交互命令 C強行停止程序運行的命令。C念作(Control一C),即先按下Ctrl鍵,不抬起再按C鍵。在發(fā)現(xiàn)程序運行有錯,運行時間太長時,可用此方法中途終止它。函數(shù)文件n MATLAB語言中,函數(shù)文件是用來定義子程序的。主要由以下三個特點。 (1)由function開頭,后跟的函數(shù)名必須與文件名相同; (2)有輸入輸出變元(變量),可進行變量傳遞; (3)除非用global聲明,程序中的變量均為局部變量,不保存在工作

21、空間中。文件編輯器及程序調(diào)試文件編輯器及程序調(diào)試nMATLAB提供的編輯器較為理想,它把編輯與調(diào)試結(jié)合在一起了。n需要用調(diào)試命令的主要是函數(shù)程序。因為在函數(shù)程序出錯而停機時,其變量不被保存。雖然它也會指出出錯的語句,但因為子程序中的變量在程序執(zhí)行完畢后會自動消失,其他現(xiàn)場數(shù)據(jù)都無記錄。會給調(diào)試帶來很大困難。解決這個問題可采用下列措施。文件編輯器及程序調(diào)試文件編輯器及程序調(diào)試n 1)把某些分號改為逗號。n 2)在子程序中適當(dāng)部位加keyboard命令。此處,系統(tǒng)會暫停而等待用戶鍵入命令。這時子程序中的變量還存在于工作空間中,可以對它們進行檢查。n 3) 將函數(shù)文件的第一行前加%號,使它成為程序文

22、件,進行初步調(diào)試。第一行中的輸入變元,可改用input或賦值語句來輸入,調(diào)好后再改回函數(shù)文件。n 4) 使用MATLAB提供的調(diào)試命令。2.6 基本繪圖方法-二維圖形的繪制1、基本形式 二維圖形的繪制是MATLAB語言圖形處理的基礎(chǔ),MATLAB最常用的畫二維圖形的命令是plot,nplot的功能: plot命令自動打開一個圖形窗口 自動標(biāo)出坐標(biāo)刻度 用直線連接相鄰兩數(shù)據(jù)點來繪制圖形 如果已經(jīng)存在一個圖形窗口,plot命令則清除當(dāng)前圖形,繪制新圖形基本形式n看兩個簡單的例子: y=0 0.58 0.70 0.95 0.83 0.25; plot(y) x=linspace(0,2*pi,30)

23、; % 生成一組線性等距的數(shù) y=sin(x); plot(x,y)2、多重線n 在plot后使用多輸入變量 plot(x1,y1,x2,y2,.xn,yn) 例如 x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) 2、多重線n多重線的另一種畫法是利用hold命令。 例如: x=linspace(0,2*pi,30); y=sin(x); plot(x,y) 先畫好圖這個圖,然后用下述命令增加cos(x)的圖形。 hold on z=cos(x); plot(x,z) hold off3、線型、點型和顏色nMATLAB對曲線的線型和顏色

24、有許多選擇,標(biāo)注的方法是在每一對數(shù)組后加一個字符串參數(shù), plot(x,y,s) 字符串s設(shè)定曲線的顏色和繪圖方式 或plot(x1,y1,s1,x2,y2,s2,.) 說明見下表:3、線型、點型和顏色 線型、點型和顏色線型、點型和顏色標(biāo)志符顏色標(biāo)志符線型和點型y黃. 點m品紅o 圓圈c 青 x x號r 紅 + + 號g 綠 - 實線b 蘭 * 星號w 白 : 虛線k 黑 -. 點劃線 - 長劃線3、線型、點型和顏色n以下面的例子說明用法: x=0:pi/15:2*pi; y1=sin(x); y2=cos(x) plot(x,y1,b:+,x,y2,g-.*)4、網(wǎng)格和標(biāo)記 n在一個圖形上可以加網(wǎng)格、標(biāo)題、x軸標(biāo)記、y軸標(biāo)記,用下列命令完成這些工作。 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) grid xlabel(Independent Variable X) ylabel(Dependent Variables Y and Z) title(sine and Cosine Curves

溫馨提示

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

評論

0/150

提交評論