第2-3天第10章matlab軟件簡(jiǎn)介_第1頁(yè)
第2-3天第10章matlab軟件簡(jiǎn)介_第2頁(yè)
第2-3天第10章matlab軟件簡(jiǎn)介_第3頁(yè)
第2-3天第10章matlab軟件簡(jiǎn)介_第4頁(yè)
第2-3天第10章matlab軟件簡(jiǎn)介_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、02:14:01MCM1MATLAB軟件簡(jiǎn)介 10.1 基本操作 10.2 向量、矩陣及其運(yùn)算 10.3 MATLAB程序設(shè)計(jì) 10.4 MATLAB圖形處理 10.5 優(yōu)化工具箱02:14:01MCM2 利用MATLAB的命令窗口,可以完成較為簡(jiǎn)單的運(yùn)算,但遇到較為復(fù)雜的問題時(shí),僅靠命令窗口來解決可能會(huì)非常繁瑣,這時(shí)我們就要考慮使用MATLAB的程序設(shè)計(jì)。MATLAB提供了一個(gè)完善的程序設(shè)計(jì)語言環(huán)境,使我們能方便地編寫復(fù)雜的程序,完成各種復(fù)雜的計(jì)算。MATLAB語言在形式上與C語言相似,但它的編程效率比C語言高得多,因?yàn)橛肕ATLAB語言編程,不需要事先定義變量,不需要考慮數(shù)據(jù)類型,系統(tǒng)會(huì)自

2、動(dòng)把所有的數(shù)據(jù),包括標(biāo)量、向量、字符、字符串等統(tǒng)一處理成矩陣,矩陣的大小是根據(jù)需要?jiǎng)討B(tài)變化。在本節(jié)中我們主要介紹MATLAB類似于其它高級(jí)語言的關(guān)系運(yùn)算、邏輯運(yùn)算、程序的控制結(jié)構(gòu),以及MATLAB特有的M-文件。 10.3 MATLAB程序設(shè)計(jì)02:14:01MCM3 關(guān)系運(yùn)算是指對(duì)兩個(gè)量之間的大小比較,MATLAB提供了6個(gè)關(guān)系運(yùn)算符,如表10.3所示。大于=大于或等于 a1=58a1 = 0 a2=1 2 3;4 5 6;a3=6 5 4;3 2 1; a4=a2 a5=a2=3 矩陣與標(biāo)量間的關(guān)系運(yùn)算是指矩陣的每個(gè)元 素與該標(biāo)量進(jìn)行關(guān)系運(yùn)算。a5 = 0 0 1 1 1 1MATLAB提

3、供了3各邏輯運(yùn)算符,如下表10.4所示:表10.4&邏輯與|邏輯或邏輯非 邏輯運(yùn)算將每個(gè)非零元素當(dāng)作1(真)來處理。同關(guān)系運(yùn)算一樣,它也可以作用于格式相同的矩陣,運(yùn)算結(jié)果為由“0”和“1”組成的矩陣。 02:14:01MCM6 b1=3&0,b2=3|0,b3=(2=3) 數(shù)值的邏輯運(yùn)算。b1 = 0b2 = 1b3 = 1 b4=-2 -1 0;1 2 3;b5=1 3 5;-1 -3 -5; b6=(b4-2)&(b5=b4|b4 c=1 2 3;0 1 0; c1=any(c),c2=all(c) c1 = 1 1 1 矩陣c的每一列中都有非零元素。c2 = 0 1 0 矩陣c中只有第二

4、列中所有元素非零。02:14:01MCM8 MATLAB程序的控制結(jié)構(gòu)有順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)三種。順序結(jié)構(gòu)較為簡(jiǎn)單,即根據(jù)語句的書寫順序,從上到下按行執(zhí)行,執(zhí)行完所有語句后結(jié)束程序運(yùn)行。我們這里主要介紹循環(huán)結(jié)構(gòu)的控制流語句for、while和選擇結(jié)構(gòu)的控制流語句if、switch,這四個(gè)語句均以end結(jié)束。for循環(huán)語句的一般格式為:for 循環(huán)變量=冒號(hào)表達(dá)式循環(huán)體 end 其中的循環(huán)體可以是一條語句或命令,也可以是由逗號(hào)、分號(hào)隔開的若干語句或命令。冒號(hào)表達(dá)式用來控制循環(huán)的次數(shù),對(duì)于由冒號(hào)表達(dá)式確定的每一個(gè)循環(huán)變量的值,循環(huán)體中的所有語句都被重復(fù)執(zhí)行。02:14:01MCM9我們利用

5、for循環(huán)來計(jì)算自然數(shù)15的階乘。 d=zeros(1,5); 開辟存放各階乘的地址, MATLAB可動(dòng)態(tài) 調(diào)節(jié)矩陣的格式,故只使用后面的語句 結(jié)果也是將各階乘存放到矩陣d中,但預(yù) 先開辟空間可節(jié)約運(yùn)行時(shí)間。 e=1; 對(duì)乘積因子變量e賦初值。 for i=1:5 循環(huán)變量i從1一直到5,步長(zhǎng)為1。 d(i)=e*i; 此for循環(huán)的循環(huán)體包含兩個(gè)語句,此 句作用是求i的階乘并存放在d(i)處且結(jié) 果不顯示(不顯示可節(jié)約運(yùn)行時(shí)間)。 e=d(i); 改變e的值且結(jié)果不顯示。end 結(jié)束for循環(huán)。 disp(d) 顯示各階乘。 1 2 6 24 12002:14:01MCM10 前述for語句

6、一般格式中的“冒號(hào)表達(dá)式”部分也可以是任意的向量或矩陣的變量名,此時(shí),循環(huán)變量依次取向量的值或按矩陣的列依次取值。 f1=1 3 5;f2=1 3 5;4 6 8; i=1;j=1; for g=f1 f3(i)=g; i=i+1; 取出f1的各分量的值。 End for h=f2 f4(j)=h(2)*h(1);j=j+1; 求各列元素的乘積。 end disp(f3) 1 3 5 disp(f4) 4 18 4002:14:01MCM11for循環(huán)可以嵌套使用,如以下程序可以生成35Hilbert矩陣。 k=zeros(3,5); for i=1:3 for j=1:5 k(i,j)=1/

7、(i+j-1); end end format rat 改變顯示格式。 kk = 1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 format 恢復(fù)顯示格式。02:14:01MCM12 for循環(huán)主要用于循環(huán)次數(shù)固定的情形,而很多實(shí)際計(jì)算中循環(huán)次數(shù)往往并不能預(yù)先確定,此時(shí)我們可以使用while循環(huán)語句。 while循環(huán)語句的一般格式為:while 條件循環(huán)體 end “條件”即執(zhí)行循環(huán)的條件,用來控制循環(huán)的次數(shù),它可以是關(guān)系表達(dá)式或邏輯表達(dá)式。當(dāng)條件成立(即為1)時(shí),循環(huán)體被執(zhí)行,直到條件不成立(即為0)時(shí),結(jié)束循環(huán)。02:1

8、4:01MCM13我們利用while循環(huán)來尋找階乘小于100萬的最大的自然數(shù)。 m=1; while prod(1:m) m=m-1 結(jié)束循環(huán)的條件為階乘大于100萬,故最終的結(jié)果需減1。m = 9選擇結(jié)構(gòu)的if語句的格式主要有以下三種:格式1:if 條件 語句組 end當(dāng)條件成立時(shí),執(zhí)行語句組,否則執(zhí)行end的后續(xù)語句。02:14:01MCM14格式2:if 條件 語句組1 else 語句組2 end格式3:if 條件1 語句組1 else if 條件2 語句組2 else if 條件n 語句組n else 語句組n+1 end 當(dāng)條件成立時(shí),執(zhí)行語句組1,否則執(zhí)行語句組2。執(zhí)行完成之后,執(zhí)

9、行end的后續(xù)語句。 當(dāng)條件1成立時(shí),執(zhí)行語句組1,執(zhí)行完成后,執(zhí)行end的后續(xù)語句;當(dāng)條件1不成立時(shí),判斷條件2,若其成立,執(zhí)行語句組2,執(zhí)行完成后,執(zhí)行end的后續(xù)語句;依次類推,若所有條件均不成立,則執(zhí)行語句組n+1,執(zhí)行完成后,執(zhí)行end的后續(xù)語句。02:14:01MCM15 我們可以利用上述3種格式的if語句自定義左面的符號(hào)函數(shù)。若用格式1,需分別調(diào)用3次;若用格式2,則需使用嵌套;下面是用格式3書寫的程序。 if x0 y=1; else if xp=rand(1,100);i=1;s=0; 生成隨機(jī)數(shù),循環(huán)變量、計(jì)數(shù)器賦初值。while 1 該條件總為真,如無中斷語句break,

10、循環(huán)將 if p(i)=0.5 無休止地運(yùn)行。 s=s+1; end i=i+1; if i100 設(shè)置循環(huán)中斷條件。 break 該條件總為真,如無中斷語句break,循環(huán)將無 休止地運(yùn)行。 end end ss = 54 換新的100個(gè)隨機(jī)數(shù)得到的統(tǒng)計(jì)個(gè)數(shù)可能不同。02:14:01MCM17 選擇結(jié)構(gòu)的switch語句根據(jù)表達(dá)式的值來選擇執(zhí)行相應(yīng)的語句組。switch的格式為: switch 表達(dá)式 case 值1 語句組1 case 值2 語句組2 case 值n 語句組n otherwise 語句組n1 end 當(dāng)表達(dá)式的值為值1時(shí),執(zhí)行語句組1,執(zhí)行完成后,執(zhí)行end的后續(xù)語句;當(dāng)表

11、達(dá)式的值為值2時(shí),執(zhí)行語句組2,執(zhí)行完成后,執(zhí)行end的后續(xù)語句;依次類推,若以上均不滿足,執(zhí)行語句組n1,執(zhí)行完成后,執(zhí)行end的后續(xù)語句。02:14:01MCM18 到目前為止,我們?nèi)匀灰恢痹诿畲翱谥鹦休斎霐?shù)據(jù)和命令來實(shí)現(xiàn)計(jì)算等功能。這種方法對(duì)于較為簡(jiǎn)單的問題還可以接受,一旦問題較為復(fù)雜,這種方法就顯得相當(dāng)麻煩,這時(shí)MATLAB提供的以m為擴(kuò)展名的M文件的作用就突顯出來了。M 文件有兩種類型:文本M文件和函數(shù)M文件。 建立M文件可以在MATLAB的主窗口的File下拉式菜單中選擇New,再選擇M-file,此時(shí)MATLAB將打開一個(gè)文本編輯窗口,在此窗口中輸入一系列的命令和數(shù)據(jù)。編輯結(jié)束

12、后,在此窗口的File下拉式菜單中選擇Save,將彈出保存對(duì)話框,選擇文件的保存位置并鍵入文件名稱(需遵循變量的命名規(guī)則)和“.m”,單擊保存按鈕即完成M文件的建立。已經(jīng)建立好的M文件可以隨時(shí)打開、編輯、修改,方法同Windows操作系統(tǒng)。02:14:01MCM19 文本M文件就是命令行的簡(jiǎn)單疊加,調(diào)用文本M文件時(shí),MATLAB會(huì)自動(dòng)按順序執(zhí)行文件中的命令行。以下是我們自己編寫的命名為Fibo.m的一個(gè)文本M文件,它的功能是產(chǎn)生前n個(gè)Fibonnaci數(shù)。f=1 1;i=1;if n= =1 f(2)= ;elseif n=2 %如果n為2,不執(zhí)行任何語句else while i n=10;F

13、ibo 產(chǎn)生前10個(gè)Fibonnaci數(shù);文件中未指定n的大 小,需事先指定。f = 1 1 2 3 5 8 13 21 34 5502:14:01MCM21 函數(shù)M文件是另一類M文件。MATLAB所提供的絕大多數(shù)功能函數(shù)都是由函數(shù)M文件實(shí)現(xiàn)的,可見函數(shù)M文件的重要性。我們可以根據(jù)需要建立自己的函數(shù)M文件,它能夠像系統(tǒng)中的功能函數(shù)一樣方便地調(diào)用,從而極大地?cái)U(kuò)展了MATLAB的功能。函數(shù)M文件的第一行有特殊的格式,必須以function開頭。函數(shù)M文件的一般格式為:function 輸出參數(shù)表=函數(shù)名(形式參數(shù)) 語句組02:14:01MCM22 這里的輸出參數(shù)表可以是一個(gè)變量,也可以是多個(gè)變量

14、,他們表示要計(jì)算的量。如果是一個(gè)參數(shù),雙括號(hào)可以去掉;如果是多個(gè)變量,兩兩之間用逗號(hào)隔開。這里的函數(shù)名必須與該文件的文件名一致,這樣才能保證成功調(diào)用。形式參數(shù)是一組形式變量,本身沒有任何意義,只有在調(diào)用時(shí)賦予它們實(shí)際值才有意義。 我們編寫一個(gè)命名為Fibon.m的函數(shù)M文件,它的功能是產(chǎn)生前n個(gè)Fibonnaci數(shù),并計(jì)算這n個(gè)數(shù)之和。02:14:01MCM23function f,s=fibon(n) %返回兩個(gè)量f、s,n為形式參數(shù)。f=1 1;i=1;if n=1 f(2)= ;Else if n=2 %如果n為2,不執(zhí)行任何語句。else while i fib,fibs=Fibon(10) 返回值分別賦予fib和fibsfib = 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論