《MATLAB基礎(chǔ)教程(第六版)(微課版)》ch06 MATLAB 編程_第1頁(yè)
《MATLAB基礎(chǔ)教程(第六版)(微課版)》ch06 MATLAB 編程_第2頁(yè)
《MATLAB基礎(chǔ)教程(第六版)(微課版)》ch06 MATLAB 編程_第3頁(yè)
《MATLAB基礎(chǔ)教程(第六版)(微課版)》ch06 MATLAB 編程_第4頁(yè)
《MATLAB基礎(chǔ)教程(第六版)(微課版)》ch06 MATLAB 編程_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2024年11月22日第1頁(yè)第6章MATLAB編程MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2024年11月22日第2頁(yè)教學(xué)目標(biāo)掌握MATLAB的腳本文件及其編輯和調(diào)試方法掌握MATLAB的程序設(shè)計(jì)和開(kāi)發(fā)流程掌握MATLAB關(guān)系運(yùn)算、邏輯運(yùn)算及函數(shù)操作掌握MATLAB中的流程控制語(yǔ)句了解MATLAB的程序調(diào)試方法2024年11月22日第3頁(yè)教學(xué)內(nèi)容腳本文件和編輯器程序設(shè)計(jì)和開(kāi)發(fā)關(guān)系運(yùn)算符和邏輯變量邏輯運(yùn)算符和函數(shù)條件語(yǔ)句循環(huán)switch結(jié)構(gòu)調(diào)試MATLAB程序2024年11月22日第4頁(yè)腳本文件和編輯器(1/11)在MATLAB中,用戶(hù)可以使用兩種方法執(zhí)行運(yùn)算:

(1)在交互模式下,直接在命令窗口中輸入所有的命令。

(2)通過(guò)運(yùn)行腳本文件中所存儲(chǔ)的MATLAB程序。2024年11月22日第5頁(yè)腳本文件和編輯器(2/11)創(chuàng)建和使用腳本文件2024年11月22日第6頁(yè)腳本文件和編輯器(3/11)有效使用腳本文件

(1)腳本文件名必須滿(mǎn)足MATLAB為變量命名的約定。(2)為腳本文件賦予的名稱(chēng)不要與其所計(jì)算的變量名稱(chēng)相同。(3)為腳本文件賦予的名稱(chēng)要與MATLAB命令或者函數(shù)的名稱(chēng)都不相同。(4)在交互模式中,腳本文件所創(chuàng)建的所有變量都是全局變量。(5)函數(shù)文件所創(chuàng)建的變量是該函數(shù)的局部變量。用戶(hù)如果不必訪問(wèn)腳本文件中的所有變量,就需要考慮使用函數(shù)文件。這將避免用變量名“弄亂”工作空間,并將同時(shí)減少內(nèi)存需求。(6)在不使用文本編輯器打開(kāi)M-文件的情況下,用戶(hù)可以使用type命令來(lái)查看文件的內(nèi)容。2024年11月22日第7頁(yè)腳本文件和編輯器(4/11)有效使用命令行窗口和編輯器用戶(hù)可以使用鼠標(biāo)重新調(diào)整窗口的大小并移動(dòng)窗口,從而可以同時(shí)查看它們。如果沒(méi)有進(jìn)入編輯器,那么使用Alt-Tab組合鍵則可快速地在編輯器/調(diào)試器窗口和命令窗口之間來(lái)回切換。在命令窗口中,使用向上箭頭鍵檢索先前所輸入的腳本文件名,并且按Enter鍵執(zhí)行腳本文件。在修改了腳本文件之后,要確保在切換到命令窗口之前保存文件。用戶(hù)可以使用編輯器作為基本的文字處理器來(lái)編寫(xiě)包含有用戶(hù)腳本文件、結(jié)果和討論的簡(jiǎn)短報(bào)告,或者用以提供用戶(hù)對(duì)某一問(wèn)題的解答。2024年11月22日第8頁(yè)腳本文件和編輯器(5/11)調(diào)試腳本文件程序調(diào)試就是找出和刪除程序中“故障”或者錯(cuò)誤的過(guò)程。

(1)語(yǔ)法錯(cuò)誤(2)運(yùn)行時(shí)錯(cuò)誤MATLAB錯(cuò)誤消息通常使用戶(hù)能夠找到語(yǔ)法錯(cuò)誤。檢查出運(yùn)行時(shí)錯(cuò)誤,可以嘗試以下方法:

(1)總是使用簡(jiǎn)單問(wèn)題(其可以通過(guò)手算來(lái)檢驗(yàn)答案)來(lái)測(cè)試程序。

(2)刪除語(yǔ)句末尾的分號(hào),用以顯示任何一個(gè)中間計(jì)算結(jié)果。

(3)使用編輯器的調(diào)試特性。2024年11月22日第9頁(yè)腳本文件和編輯器(6/11)編程風(fēng)格注釋部分(1)

在第一行中放置程序名和任何關(guān)鍵詞。(2)在第二行中放置創(chuàng)建的日期,以及創(chuàng)建者的姓名。(3)

每個(gè)輸入和輸出變量的變量名定義。(4)

程序中調(diào)用的每個(gè)用戶(hù)自定義函數(shù)名稱(chēng)。輸入部分:放置輸入數(shù)據(jù)和/或輸入函數(shù),其允許輸入數(shù)據(jù)。計(jì)算部分

:放置計(jì)算。

輸出部分:放置那些以所需格式傳遞的輸出函數(shù)。2024年11月22日第10頁(yè)腳本文件和編輯器(7/11)記錄度量單位本書(shū)建議用戶(hù)為所有的輸入變量和輸出變量記錄度量單位,因?yàn)楹芏喙こ滔到y(tǒng)所出現(xiàn)的驚人失敗都源于用戶(hù)誤解了用于設(shè)計(jì)系統(tǒng)的程序輸入和輸出變量的單位。2024年11月22日第11頁(yè)腳本文件和編輯器(8/11)使用腳本文件存儲(chǔ)數(shù)據(jù)可能會(huì)有一些應(yīng)用程序要求用戶(hù)頻繁地訪問(wèn)同一組數(shù)據(jù)。如果是這樣的話(huà),用戶(hù)可以將數(shù)組中的數(shù)據(jù)存儲(chǔ)在一個(gè)腳本文件之中。2024年11月22日第12頁(yè)腳本文件和編輯器(9/11)控制輸入和輸出MATLAB為從用戶(hù)獲取輸入以及為格式化輸出(執(zhí)行MATLAB命令而獲得的結(jié)果)提供了許多有用的命令。

令說(shuō)

明disp(A)顯示數(shù)組A的內(nèi)容,而不是數(shù)組的名稱(chēng)disp(‘text’)顯示單引號(hào)內(nèi)部的文本串Format控制屏幕輸出的顯示格式Fprintf執(zhí)行格式化的寫(xiě)入到屏幕或者寫(xiě)入到一個(gè)文件x=input('text')顯示單引號(hào)中的文本,等待用戶(hù)的鍵盤(pán)輸入,并且將輸入值存儲(chǔ)在x中x=input('text','s')顯示單引號(hào)中的文本,等待用戶(hù)的鍵盤(pán)輸入,并且將輸入作為字符串存儲(chǔ)在x中k=menu('title','option1','option2',...顯示菜單,該菜單的名稱(chēng)在字符串變量'title'中,并且菜單的選項(xiàng)是'option1'、'option2'等等2024年11月22日第13頁(yè)腳本文件和編輯器(10/11)用戶(hù)輸入input函數(shù)用以在屏幕上顯示文本,等待用戶(hù)從鍵盤(pán)輸入某些內(nèi)容,然后再將輸入內(nèi)容存儲(chǔ)在指定變量之中。2024年11月22日第14頁(yè)腳本文件和編輯器(11/11)腳本文件示例%程序Falling_Speed.m:繪制一個(gè)下落物體的速度圖形。%W.PalmIII于2004年3月1日創(chuàng)建。%%輸入變量:%tf=最終時(shí)間(單位為秒)%%輸出變量:%t=計(jì)算速度的時(shí)間數(shù)組(單位為秒)%v=速度數(shù)組(米/秒)%參數(shù)值:g=9.81;%以SI為單位的重力加速度%%輸入部分:tf=input('Enterthefinaltimeinseconds:');%%計(jì)算部分:dt=tf/500;t=[0:dt:tf];%創(chuàng)建一個(gè)有501個(gè)時(shí)間值的數(shù)組。v=g*t;%%輸出部分:plot(t,v),xlabel('Time(seconds)'),ylabel('Speed(meters/second)')2024年11月22日第15頁(yè)程序設(shè)計(jì)和開(kāi)發(fā)(1/5)算法和控制結(jié)構(gòu)(1)順序運(yùn)算。(2)條件運(yùn)算。(3)迭代運(yùn)算(循環(huán))。

結(jié)構(gòu)化程序設(shè)計(jì)(1)編寫(xiě)結(jié)構(gòu)化程序較容易。(2)為一個(gè)應(yīng)用編寫(xiě)的模塊(函數(shù))也可以用于其他的應(yīng)用。(3)調(diào)試結(jié)構(gòu)化程序較容易。(4)結(jié)構(gòu)化程序設(shè)計(jì)在團(tuán)隊(duì)環(huán)境中非常有效。(5)理解和修改結(jié)構(gòu)化程序較容易。2024年11月22日第16頁(yè)程序設(shè)計(jì)和開(kāi)發(fā)(2/5)自頂向下的設(shè)計(jì)和程序文檔(1)簡(jiǎn)明地陳述問(wèn)題(2)指定程序所使用的數(shù)據(jù)。這就是“輸入”(3)指定程序所產(chǎn)生的信息。這就是“輸出”(4)通過(guò)手算或者計(jì)算器完成解決方案的步驟。如果需要的話(huà),可以使用一個(gè)較簡(jiǎn)單的數(shù)據(jù)集(5)編寫(xiě)和運(yùn)行程序(6)用手算結(jié)果檢驗(yàn)程序的輸出(7)用輸入數(shù)據(jù)運(yùn)行程序,并且對(duì)輸出進(jìn)行一個(gè)真實(shí)性檢驗(yàn)(8)如果用戶(hù)在將來(lái)使用該程序作為一個(gè)通用工具,那么,用戶(hù)必須通過(guò)用一組合理的數(shù)據(jù)值來(lái)運(yùn)行它以進(jìn)行測(cè)試;并對(duì)結(jié)果進(jìn)行一個(gè)真實(shí)性檢驗(yàn)2024年11月22日第17頁(yè)程序設(shè)計(jì)和開(kāi)發(fā)(3/5)自頂向下的設(shè)計(jì)和程序文檔結(jié)構(gòu)圖和流程圖通過(guò)使用以下方法實(shí)現(xiàn)有效的文檔記錄。(1)合適地選擇變量名,用以反映它們所代表的量。(2)在程序中使用注釋。(3)使用結(jié)構(gòu)圖。(4)使用流程圖。(5)通常在偽代碼中逐字地描述程序。2024年11月22日第18頁(yè)程序設(shè)計(jì)和開(kāi)發(fā)(4/5)偽代碼

偽代碼是對(duì)實(shí)際計(jì)算機(jī)代碼的模仿。偽代碼可以為程序內(nèi)部的注釋提供根據(jù)。除了提供文檔記錄之外,偽代碼在編寫(xiě)詳細(xì)代碼之前對(duì)于一個(gè)程序輪廓所進(jìn)行的描述也很有用。查找故障參看6.1.4節(jié)2024年11月22日第19頁(yè)程序設(shè)計(jì)和開(kāi)發(fā)(5/5)開(kāi)發(fā)大型程序(1)編寫(xiě)和測(cè)試各個(gè)模塊(單元測(cè)試階段)。(2)編寫(xiě)使用模塊的頂級(jí)程序(構(gòu)建階段)。(3)測(cè)試第一個(gè)完整的程序(alpha測(cè)試版階段)。(4)由內(nèi)部人員與熟悉和信任的外部用戶(hù)(這通常必須簽保密協(xié)議)測(cè)試最后的alpha測(cè)試版。2024年11月22日第20頁(yè)關(guān)系運(yùn)算符和邏輯變量(1/4)6個(gè)關(guān)系運(yùn)算符:

<小于,<=小于或者等于,>大于,

>=大于或者等于,==等于,~=不等于使用關(guān)系運(yùn)算符進(jìn)行比較的結(jié)果是0(如果比較是假)或者1(如果比較是真),并且MATLAB可以使用這個(gè)結(jié)果作為一個(gè)變量。用于比較數(shù)組時(shí),關(guān)系運(yùn)算符逐元素地比較數(shù)組。比較的數(shù)組必須具有相同的維數(shù)。唯一的例外是當(dāng)用戶(hù)比較一個(gè)數(shù)組和一個(gè)標(biāo)量的時(shí)候,這時(shí)MATLAB將數(shù)組中的所有元素分別與標(biāo)量進(jìn)行比較。關(guān)系運(yùn)算符也可以用于數(shù)組尋址。算術(shù)運(yùn)算符+、-、*、/和\的優(yōu)先級(jí)高于關(guān)系運(yùn)算符。關(guān)系運(yùn)算符之間的優(yōu)先級(jí)相等,并且MATLAB按照從左到右的順序計(jì)算它們的值。2024年11月22日第21頁(yè)關(guān)系運(yùn)算符和邏輯變量(2/4)logical類(lèi)當(dāng)使用關(guān)系運(yùn)算符(如x=(5>2))時(shí),創(chuàng)建了一個(gè)邏輯變量(在此處就是x)。在MATLAB之前的版本中,logical是任何一個(gè)數(shù)值數(shù)據(jù)類(lèi)型的屬性?,F(xiàn)在,logical是一個(gè)第一類(lèi)數(shù)據(jù)類(lèi)型和一個(gè)MATLAB類(lèi),所以logical現(xiàn)在等效于其他的第一類(lèi)類(lèi)型,如字符和單元數(shù)組。邏輯變量只可能有值1(真)和0(假)。2024年11月22日第22頁(yè)關(guān)系運(yùn)算符和邏輯變量(3/4)logical函數(shù)用戶(hù)可以使用關(guān)系和邏輯運(yùn)算符以及l(fā)ogical函數(shù)創(chuàng)建邏輯數(shù)組。logical函數(shù)返回一個(gè)可以用于邏輯索引和邏輯測(cè)試的數(shù)組。2024年11月22日第23頁(yè)關(guān)系運(yùn)算符和邏輯變量(4/4)使用邏輯數(shù)組訪問(wèn)數(shù)組當(dāng)使用邏輯數(shù)組尋址另一個(gè)數(shù)組時(shí),MATLAB會(huì)從那個(gè)數(shù)組中提取邏輯數(shù)組有1那個(gè)位置中的元素。2024年11月22日第24頁(yè)邏輯運(yùn)算符和函數(shù)(1/2)MATLAB中有5個(gè)邏輯運(yùn)算符,有時(shí)也稱(chēng)為布爾(Boolean)運(yùn)算符,這些運(yùn)算符執(zhí)行逐元素運(yùn)算。除了NOT運(yùn)算符(~)之外,它們的優(yōu)先級(jí)比算術(shù)和關(guān)系運(yùn)算符的都低。NOT運(yùn)算&和|運(yùn)算符與(AND)運(yùn)算或(OR)運(yùn)算異或函數(shù)2024年11月22日第25頁(yè)邏輯運(yùn)算符和函數(shù)(2/2)短路邏輯運(yùn)算符

A&&BA||B邏輯運(yùn)算符和find函數(shù)函數(shù)find(x)計(jì)算一個(gè)數(shù)組,它包含數(shù)組x中那些非零元素的索引。它可與邏輯運(yùn)算符結(jié)合使用。2024年11月22日第26頁(yè)條件語(yǔ)句(1/3)if語(yǔ)句

if語(yǔ)句的基本形式:

if邏輯表達(dá)式語(yǔ)句

end“嵌套”if語(yǔ)句

if邏輯表達(dá)式1

語(yǔ)句組1if邏輯表達(dá)式2

語(yǔ)句組2endend每條if語(yǔ)句必須伴隨有一條end語(yǔ)句。end語(yǔ)句標(biāo)志著邏輯表達(dá)式為true時(shí)所要執(zhí)行語(yǔ)句的結(jié)束。if和邏輯表達(dá)式(其可以是一個(gè)標(biāo)量、一個(gè)矢量或者一個(gè)矩陣)之間需要一個(gè)空格。2024年11月22日第27頁(yè)條件語(yǔ)句(2/3)else語(yǔ)句與elseif語(yǔ)句else語(yǔ)句的基本結(jié)構(gòu)為:

if邏輯表達(dá)式語(yǔ)句組1else

語(yǔ)句組2end使用elseif語(yǔ)句的一般形式是:if邏輯表達(dá)式1語(yǔ)句組1elseif邏輯表達(dá)式2語(yǔ)句組2else語(yǔ)句組3end2024年11月22日第28頁(yè)條件語(yǔ)句(3/3)字符串和條件語(yǔ)句字符串是一個(gè)包含有字符的變量。字符串對(duì)于創(chuàng)建輸入提示符、消息、存儲(chǔ)以及對(duì)諸如姓名和地址等數(shù)據(jù)進(jìn)行的操作都很有用。要在MATLAB創(chuàng)建一個(gè)字符串變量,可以將字符放在單引號(hào)中。字符串最重要的應(yīng)用之一是:創(chuàng)建輸入提示和輸出消息。

2024年11月22日第29頁(yè)循環(huán)(1/4)for循環(huán)for循環(huán)的典型結(jié)構(gòu)如下所示:

for循環(huán)變量=m:s:n

語(yǔ)句

end注意

for語(yǔ)句需要伴隨有一個(gè)end語(yǔ)句。end語(yǔ)句標(biāo)志著所要執(zhí)行語(yǔ)句的結(jié)束。在for和loop變量(其可能是一個(gè)標(biāo)量、一個(gè)矢量或者一個(gè)矩陣,但是到目前為止,標(biāo)量是最常見(jiàn)的情況)之間需要一個(gè)空格。2024年11月22日第30頁(yè)循環(huán)(2/4)break和continue語(yǔ)句break語(yǔ)句停止循環(huán)的執(zhí)行。continue語(yǔ)句將把控制傳遞給那些它出現(xiàn)在其中的for或者while循環(huán)的下一次迭代之中,并同時(shí)跳過(guò)循環(huán)主體中的其他任何語(yǔ)句。在嵌套循環(huán)中,continue將控制傳遞給關(guān)閉了continue語(yǔ)句的for或者while循環(huán)的下一次迭代。2024年11月22日第31頁(yè)循環(huán)(3/4)使用數(shù)組作為循環(huán)索引

MATLAB中允許使用一個(gè)矩陣表達(dá)式為循環(huán)指定所執(zhí)行的遍數(shù)。在這種情況下,循環(huán)變量是一個(gè)矢量,并且在每一遍循環(huán)執(zhí)行期間,MATLAB都將循環(huán)變量設(shè)置成等效于矩陣表達(dá)式的連續(xù)列。

隱含循環(huán)使用邏輯數(shù)組作為掩碼通常可以通過(guò)使用邏輯數(shù)組作為掩碼(即,選擇另一個(gè)數(shù)組的元素)來(lái)避免使用循環(huán)和分支,用戶(hù)因此可以創(chuàng)建更簡(jiǎn)單和更快捷的程序。2024年11月22日第32頁(yè)循環(huán)(4/4)while循環(huán)while循環(huán)的典型結(jié)構(gòu)如下所示:

while邏輯表達(dá)式語(yǔ)句

end要使while循環(huán)正常運(yùn)行,必須發(fā)生以下這兩個(gè)前提條件:

(1)在執(zhí)行while語(yǔ)句之前,循環(huán)變量必須有一個(gè)值。(2)語(yǔ)句必須以某種方式改變循環(huán)變量的值。while循環(huán)的主要應(yīng)用是:當(dāng)用戶(hù)希望只要某個(gè)語(yǔ)句為true時(shí),循環(huán)就繼續(xù)進(jìn)行。2024年11月22日第33頁(yè)switch結(jié)構(gòu)(1/1)switch結(jié)構(gòu)的語(yǔ)法是:

switch輸入表達(dá)式(標(biāo)量或者字符串)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論