MATLAB基本語法.doc_第1頁
MATLAB基本語法.doc_第2頁
MATLAB基本語法.doc_第3頁
MATLAB基本語法.doc_第4頁
MATLAB基本語法.doc_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

在MATLAB中,變量和常量的標(biāo)識(shí)符最長允許19個(gè)字符,標(biāo)識(shí)符中第一個(gè)字符必須是英文字母。MATLAB區(qū)分大小寫,默認(rèn)狀態(tài)下,A和a被認(rèn)為是兩個(gè)不同的字符。(case sensitive)一、數(shù)組和矩陣(一)數(shù)組的賦值數(shù)組是指一組實(shí)數(shù)或復(fù)數(shù)排成的長方陣列。它可以是一維的“行”或“列”,可以是二維的“矩形”,也可以是三維的甚至更高的維數(shù)。在MATLAB中的變量和常量都代表數(shù)組,賦值語句的一般形式為 變量=表達(dá)式(或數(shù))如鍵入a=1 2 3; 4 5 6; 7 8 9則將顯示結(jié)果:a= 1 2 3 4 5 6 7 8 9數(shù)組放置在 中;數(shù)組元素用空格或逗號(hào)“,”分隔;數(shù)組行用分號(hào)“;”或“回車”隔離。(二)復(fù)數(shù)MATLAB中的每一個(gè)元素都可以是復(fù)數(shù),實(shí)數(shù)是復(fù)數(shù)的特例。復(fù)數(shù)的虛部用i或j表示。復(fù)數(shù)的賦值形式有兩種:z=1+1i ,2+2i ;3+3i ,4+4i z=1,2;3,4+1,2;3,4*i得 z=1.000+1.000i 2.000+2.000i 3.000+3.000i 4.000+4.000i以上兩式結(jié)果相同。注意,在第二式中“*”不能省略。在復(fù)數(shù)運(yùn)算中,有幾個(gè)運(yùn)算符是常用的。運(yùn)算符“”表示把矩陣作共軛轉(zhuǎn)置,即把矩陣的行列互換,同時(shí)把各元素的虛部反號(hào)。函數(shù)conj表示只把各元素的虛部反號(hào),即只取共軛。若想求轉(zhuǎn)置而不要共軛,就把conj和“”結(jié)合起來完成。例如鍵入 w=z,u=conj(z),v=conj(z)可得 w=1.000-1.000i 3.000-3.000i 2.000-2.000i 4.000-4.000iu=1.000-1.000i 2.000-2.000i 3.000-3.000i 4.000-4.000iv=1.000+1.000i 3.000+3.000i 2.000+2.000i 4.000+4.000i(三)數(shù)組尋訪和賦值的格式表M-1 常用子數(shù)組的尋訪、賦值格式子數(shù)組的尋訪 和賦值 使 用 說 明 a(r,c) 由a的“r指定行”和“c指定列”上的元素組成的子數(shù)組 a(r,:) 由a的“r指定行”和“全部列”上的元素組成的子數(shù)組 a(:,c) 由a的“全部行”和“c指定列”上的元素組成的子數(shù)組 a(:) 由a的各列按自左到右的次序,首尾相接而生成“一維長列”數(shù)組 a(s) “單下標(biāo)”尋訪。生成“s指定的”一維數(shù)組。s若是“行數(shù)組”(或“列數(shù)組”),則a(s)就是長度相同的“行數(shù)組”(或“列數(shù)組”)二、邏輯判斷與流程控制(一)關(guān)系運(yùn)算關(guān)系運(yùn)算是指兩個(gè)元素之間數(shù)值的比較,一共有六種可能。如表M-8所列。關(guān)系運(yùn)算的結(jié)果只有兩種可能,即0或1。0表示該關(guān)系式為“假”,1表示該關(guān)系式為“真”。表M-8 關(guān)系運(yùn)算符 指 令 含 義 指 令 含 義 = 大于等于 大于 = 不等于(二)邏輯運(yùn)算邏輯量的基本運(yùn)算為“與(&)”、“或()”、“非()”三種,另外還可以用“異或(xor)”,如表M-9所示。表M-9 邏輯運(yùn)算符 運(yùn) 算 A=0 A=1 B=0 B=1 B=0 B=1 A&B 0 0 0 1 A|B 0 1 1 1 A 1 1 0 0 xor(A,B) 0 1 1 0 (三)基本的流程控制語句 if條件執(zhí)行語句格式: if 表達(dá)式 語句, end if 表達(dá)式1 語句組A, else 語句組B, endif 表達(dá)式1 語句組A, elseif 表達(dá)式2 語句組B, else 語句組C, end執(zhí)行到該語句時(shí),計(jì)算機(jī)先檢驗(yàn)if后的邏輯表達(dá)式,為1則執(zhí)行語句A;如為0則跳過A檢驗(yàn)下一句程序,直到遇見end,執(zhí)行end后面的一條語句。 while循環(huán)語句格式: while 表達(dá)式 語句組A, end執(zhí)行到該語句時(shí),計(jì)算機(jī)先檢驗(yàn)while后的邏輯表達(dá)式,為1則執(zhí)行語句A;到end處,它就跳回到while的入口,再檢驗(yàn)表達(dá)式,如仍為1則再執(zhí)行語句A,直到結(jié)果為0,就跳過語句組A,直接執(zhí)行end后面的一條語句。 for循環(huán)語句格式: for k=初值:增量:終值 語句組A, end將語句組A重復(fù)執(zhí)行N次,但每次執(zhí)行時(shí)程序中k值不同。增量缺省值為1。 switch多分支語句格式: switch 表達(dá)式(標(biāo)量或字符串) case 值1 語句組A case 值2 語句組B otherwise 語句組N end當(dāng)表達(dá)式的值與某case語句中的值相同時(shí),它就執(zhí)行該case語句后的語句組,然后直接跳到終點(diǎn)的保留的常數(shù) eps機(jī)器的浮點(diǎn)運(yùn)算誤差限。PC機(jī)上eps的默認(rèn)值為2.2204*10-16,若某個(gè)量的絕對值小于eps,則可以認(rèn)為這個(gè)量為0。 i和j若i或j量不被改寫,則它們表示純虛數(shù)量j。但在MATLAB程序編寫過程中經(jīng)常事先改寫這兩個(gè)變量的值,如在循環(huán)過程中常用這兩個(gè)變量來表示循環(huán)變量,所以應(yīng)該確認(rèn)使用這兩個(gè)變量時(shí)沒被改寫。如果想恢復(fù)該變量,則可以用語句i=sqrt(-1)設(shè)置,即對-1求平方根。 Inf無窮大量+的MATLAB表示,也可以寫成inf。同樣地,-可以表示為-Inf。在MATLAB程序執(zhí)行時(shí),即使遇到了以0為除數(shù)的運(yùn)算,也不會(huì)終止程序的運(yùn)行,而只給出一個(gè)“除0”警告,并將結(jié)果賦成Inf,這樣的定義方式符合IEEE的標(biāo)準(zhǔn)。從數(shù)值運(yùn)算編程角度看,這樣的實(shí)現(xiàn)形式明顯優(yōu)于C這樣的非專業(yè)語言。 NaN不定式(not a number),通常由0/0運(yùn)算、Inf/Inf及其他可能的運(yùn)算得出。NaN是一個(gè)很奇特的量,如NaN與Inf的乘積仍為NaN。 pi圓周率的雙精度浮點(diǎn)表示。 lasterr存放最新一次的錯(cuò)誤信息。此變量為字符串型,如果在本次執(zhí)行過程中沒出現(xiàn)這錯(cuò)誤,則此變量為空字符串。 lastwarn存放最新的警告信息。若未出現(xiàn)過警告,則此變量為空字符串。 保留的變量 ans存放最近一次無賦值變量語句的運(yùn)算結(jié)果。 end最后一行(列) nargin函數(shù)輸入變量的實(shí)際個(gè)數(shù) nargout函數(shù)返回變量的實(shí)際個(gè)數(shù) 保留字 %后接注釋 數(shù)據(jù)結(jié)構(gòu) 一、 數(shù)值型結(jié)構(gòu) MATLAB語言中最常用的數(shù)值量為雙精度浮點(diǎn)數(shù),占8個(gè)字節(jié)(PS:與JAVA的double型相同)(64位),遵從IEEE記數(shù)法,有11個(gè)指數(shù)位、53位尾數(shù)及一個(gè)符號(hào)位,值域的近似范圍為-1.7*10308至1.7*10308,其MATLAB表示為double()??紤]到一些特殊的應(yīng)用,MATLAB語言還引入了無符號(hào)的8位整形數(shù)據(jù)類型,其MATLAB表示為uint8(),其值域?yàn)?至255。此外,在MATLAB中還可以使用其他的數(shù)據(jù)類型,如int8(),int16(),int32(),uint16(),uint32()等,每一個(gè)類型后面的數(shù)字表示其位數(shù)。 二、 符號(hào)型結(jié)構(gòu) MATLAB還定義了“符號(hào)”型變量,以區(qū)別于常規(guī)的數(shù)值型變量,可以用于公式推導(dǎo)和數(shù)學(xué)問題的解析解法。申明語句為syms var_list var_props 。穡與型數(shù)值可以通過變精度算法函數(shù)vpa()以任意指定的精度顯示出來。 三、 其他數(shù)據(jù)結(jié)構(gòu) 1字符串型數(shù)據(jù) MATLAB支持字符串變量,可以用它來存儲(chǔ)相關(guān)的信息。和C語言等程序設(shè)計(jì)語言不同,MATLAB字符串是用單引號(hào)括起來的,而不是用雙引號(hào)。 2多維數(shù)組 三維數(shù)組是一般矩陣的直接拓展。在直接編程中還可以使用維數(shù)更高的數(shù)組。 3單元數(shù)據(jù) 單元數(shù)組是矩陣的直接擴(kuò)展,其存儲(chǔ)格式類似于普通的矩陣,而矩陣的每個(gè)元素不是數(shù)值,可以認(rèn)為能存儲(chǔ)任意類型的信息,這樣每個(gè)元素稱為“單元”(cell)。 4類與對象 MATLAB允許用戶自己編寫包含各種復(fù)雜詳細(xì)的變量,亦即類變量。該變量可以包含各種下級的信息,還可以重新對類定義其計(jì)算,這在控制系統(tǒng)描述中特別有用。 基本語句結(jié)構(gòu) 一、 直接賦值語句 賦值變量=賦值表達(dá)式 這一過程把等號(hào)右邊的表達(dá)式直接賦給左邊的賦值變量,并返回到MATLAB的工作空間。如果賦值表達(dá)式后面沒有分號(hào),則將在MATLAB命令窗口中表示表達(dá)式的運(yùn)算結(jié)果。 二、 函數(shù)調(diào)用語句 返回變量列表=函數(shù)名(輸入變量列表) 三、 冒號(hào)表達(dá)式 v=s1:s2:s3 該函數(shù)將生成一個(gè)行向量v,其中s1為向量的起始值,s2為步距,該向量將從s1出發(fā),每隔步距s2取一個(gè)點(diǎn),直至不超過s3的最大值就可以構(gòu)成一個(gè)向量。若省略s2,則步距取默認(rèn)值1。(PS:“不超過”取決s2,若s20則為=s3) 四、 子矩陣提取表達(dá)式 B=A(v1,v2) v1向量表示子矩陣要包含的行號(hào)構(gòu)成的向量,v2表示要包含的列號(hào)構(gòu)成的向量,這樣從A矩陣中提取有關(guān)的行和列,就可以構(gòu)成子矩陣B了。若v1為:,則表示要提取所有的行,v2亦然。 矩陣的代數(shù)運(yùn)算 一、 矩陣轉(zhuǎn)置 MATLAB中用A可以求出A矩陣的Hermit轉(zhuǎn)置(共軛轉(zhuǎn)置),矩陣的轉(zhuǎn)置則可以由A.求出。 二、 加減法運(yùn)算 假設(shè)在MATLAB工作環(huán)境下有兩個(gè)矩陣A和B,則可以由C=A+B和C=A-B命令執(zhí)行矩陣加減法。若A和B矩陣的維數(shù)相同,它會(huì)自動(dòng)地將A和B矩陣的相應(yīng)元素相加減,并賦給C變量。若二者之一為標(biāo)量,則將其遍加(減)于另一個(gè)矩陣。其它情況下,MATLAB將報(bào)錯(cuò)。 三、 矩陣乘法 MATLAB語言中兩個(gè)矩陣的乘法由C=A*B直接求出,且這里并不需要指定A和B矩陣的維數(shù)。若A和B矩陣的維數(shù)不相容(A列數(shù)不等于B行數(shù)),則將報(bào)錯(cuò)。 四、 矩陣的左除 MATLAB中用“”運(yùn)算符號(hào)表示兩個(gè)矩陣的左除,AB為方程AX=B的解X。若A為非奇異方陣,則X=A-1B。 五、 矩陣的右除 MATLAB中定義了“/”符號(hào),用于右除,相當(dāng)于求方程XA=B的解。 B/A=(AB) 六、 矩陣翻轉(zhuǎn) MATLAB提供了一些矩陣翻轉(zhuǎn)處理命令。 七、 矩陣乘方運(yùn)算 在MATLAB中統(tǒng)一表示成F=Ax。 八、 點(diǎn)運(yùn)算 兩個(gè)矩陣之間的點(diǎn)運(yùn)算是它們對應(yīng)元素的直接運(yùn)算,例如.*,.等。 矩陣的邏輯運(yùn)算 在MATLAB語言中,如果一個(gè)數(shù)的值為0,則可以認(rèn)為它為邏輯0,否則為邏輯1。(PS:包括負(fù)數(shù)和復(fù)數(shù))。 一、 矩陣的與運(yùn)算 在MATLAB下用&號(hào)表示矩陣的與運(yùn)算 二、 矩陣的或運(yùn)算 在MATLAB下用|號(hào)表示矩陣的或運(yùn)算 三、 矩陣的非運(yùn)算 在MATLAB下用號(hào)表示矩陣的非運(yùn)算 四、 矩陣的異或運(yùn)算 在MATLAB下矩陣A和B的異或運(yùn)算可以表示成xor(A,B)。 矩陣的比較運(yùn)算 = = = 循環(huán)結(jié)構(gòu) 一、 for語句的一般結(jié)構(gòu) for i=V,循環(huán)結(jié)構(gòu)體,end 在for循環(huán)結(jié)構(gòu)中,V為一個(gè)向量,循環(huán)變量i每次從V向量中取一個(gè)數(shù)值,執(zhí)行一次循環(huán)體的內(nèi)容,如此下去,直至執(zhí)行完V向量中所有的分量。 二-while循環(huán)的基本結(jié)構(gòu) while (條件式),循環(huán)結(jié)構(gòu)體,end while循環(huán)中的“條件式”是一個(gè)邏輯表達(dá)式,若其值為真(非零)則將自動(dòng)執(zhí)行循環(huán)體的結(jié)構(gòu),執(zhí)行完后再判定“條件式”的真?zhèn)危瑸檎鎰t仍然執(zhí)行結(jié)構(gòu)體,否則將退出循環(huán)結(jié)構(gòu)。 轉(zhuǎn)移結(jié)構(gòu) 其一般結(jié)構(gòu)為 if (條件1) % 如果條件1滿足,則執(zhí)行下面的段落1 語句組1 %這里也可以嵌套下級的if結(jié)構(gòu) elseif (條件2) %否則如果滿足條件2,則執(zhí)行下面的段落2 語句組2 %可以按照這樣的結(jié)構(gòu)設(shè)置多種轉(zhuǎn)移條件 else %上面的條件均不滿足時(shí),執(zhí)行下面的段落 語句組n+1 end 開關(guān)結(jié)構(gòu) 其基本結(jié)構(gòu)為 switch 開關(guān)表達(dá)式 case 表達(dá)式1 語句段1 case 表達(dá)式2,表達(dá)式3,表達(dá)式m 語句段2 otherwise 語句段n end 試探結(jié)構(gòu) 結(jié)構(gòu)如下 try, 語句段1, catch, 語句段2, end 此結(jié)構(gòu)類似C+中的異常處理機(jī)制 函數(shù)結(jié)構(gòu) 一、 MATLAB的M-函數(shù)是由function語句引導(dǎo)的,其基本結(jié)構(gòu)如下: function 返回變量列表=函數(shù)名(輸入變量列表) 注釋說明語句段,由%引導(dǎo) 輸入、返回變量格式的檢測 函數(shù)體語句 說明: 1這里輸入和返回變量的實(shí)際個(gè)數(shù)分別由nargin和nargout給出。 2返回變量如果多于1個(gè),則應(yīng)用方括號(hào)將它們括起來,否則可省去方括號(hào)。輸入變量之間用逗號(hào)分隔,返回變量用逗號(hào)或空格分隔。 3函數(shù)可遞歸調(diào)用 二、可變輸入輸出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論