資源描述:
《第4章 matlab編程基礎(chǔ)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第4章MATLAB編程基礎(chǔ)M文件文件操作流程控制語(yǔ)句程序優(yōu)化與調(diào)試基本繪圖圖像函數(shù)繪圖(一)M文件MATLAB輸入命令有兩種方法:一是在MATLAB主窗口逐行輸入命令,每個(gè)命令之間用分號(hào)或逗號(hào)分隔,每行可包含多個(gè)命令。二是將命令組織成一個(gè)命令語(yǔ)句文集,使用擴(kuò)展名“.m”,稱為M文件。它由一系列的命令和語(yǔ)句組成。當(dāng)程序需要使用大量語(yǔ)句時(shí),使用M文件非常方便,其編寫和執(zhí)行的效率遠(yuǎn)遠(yuǎn)高于從主窗口逐條輸入語(yǔ)句的效率。啟動(dòng)M文件從命令窗口選擇【新建】或【打開(kāi)】,或在命令窗口輸入“edit”腳本文件和函數(shù)文件腳本文件是一連串的MATLAB命令,它解決了運(yùn)行指令較多時(shí)過(guò)于麻煩的問(wèn)題,運(yùn)行
2、時(shí)只需在MATLAB命令窗口輸入文件名或單擊M文件編輯窗口的綠色三角圖標(biāo)。函數(shù)文件的第一句可執(zhí)行語(yǔ)句是以function引導(dǎo)的定義語(yǔ)句。函數(shù)文件可以接受輸入變量,返回結(jié)果,且可以返回任意多個(gè)值。事實(shí)上,MATLAB提供的函數(shù)命令大部分都是由函數(shù)文件定義的。函數(shù)文件基本格式function[返回參數(shù)列表]=函數(shù)名(輸入變量)%函數(shù)定義行%H1行及幫助文檔:解釋此函數(shù)的功能輸入、返回變量格式的檢測(cè)函數(shù)主體及注釋函數(shù)體語(yǔ)句例4-2編寫一個(gè)函數(shù)文件,實(shí)現(xiàn)對(duì)輸入數(shù)值求平方的功能。functiony=fun1(x)y=x.^2;腳本文件和函數(shù)文件的比較腳本文件函數(shù)文件參數(shù)沒(méi)有輸入?yún)?shù),
3、沒(méi)有返回參數(shù)可以接收和返回參數(shù)數(shù)據(jù)處理數(shù)據(jù)即為腳本中的數(shù)據(jù),全局變量產(chǎn)生局部變量,但可設(shè)為全局變量應(yīng)用編程執(zhí)行一連串的命令可以擴(kuò)充MATLAB函數(shù)庫(kù)以供調(diào)用局部變量和全局變量M文件中的語(yǔ)句對(duì)整個(gè)MATLAB工作空間里的變量起作用,這樣的變量稱為全局變量。局部變量是在函數(shù)體內(nèi)部使用的變量,其影響范圍只能在本函數(shù)體內(nèi),只在函數(shù)執(zhí)行期間存在。腳本文件過(guò)程中產(chǎn)生的變量均為全局變量,保存在內(nèi)存工作空間。函數(shù)文件中產(chǎn)生的變量如果不是特別聲明均為局部變量。函數(shù)調(diào)用函數(shù)調(diào)用有兩種語(yǔ)法方式:函數(shù)名參數(shù)1參數(shù)2…參數(shù)N;[返回參數(shù)1,返回參數(shù)2,…,返回參數(shù)N]=函數(shù)名(參數(shù)1,參數(shù)2,…,參
4、數(shù)M)。例4-4:舉例說(shuō)明兩種參數(shù)傳遞方式。>>A=pi;>>dispAA%顯示結(jié)果為A,參數(shù)A以字符串形式傳遞>>disp(A)3.1416%顯示結(jié)果為pi的值,參數(shù)以值進(jìn)行傳遞。(二)文件操作1.打開(kāi)文件fid=fopen(文件名,‘打開(kāi)方式’)2.關(guān)閉文件關(guān)閉文件用fclose函數(shù),調(diào)用格式為:sta=fclose(fid)。3.在MATLAB中,讀取二進(jìn)制文件的命令是fread,其調(diào)用格式為:A=fread(fid,count,precision)使用fread讀取該文件后,得到的為代碼對(duì)應(yīng)的數(shù)值數(shù)組,使用char()命令可以將數(shù)值數(shù)組轉(zhuǎn)換成程序代碼。(三)MA
5、TLAB的流程控制語(yǔ)句通常MATLAB程序按照前后順序執(zhí)行,但在實(shí)際中,常會(huì)運(yùn)到很多情況需要重復(fù)執(zhí)行一段語(yǔ)句,多次寫同一組命令非常麻煩,為此MATLAB提供了多種流控制語(yǔ)句:循環(huán)控制語(yǔ)句條件控制語(yǔ)句其它流程控制語(yǔ)句1.循環(huán)控制語(yǔ)句1)for循環(huán)語(yǔ)句for語(yǔ)句執(zhí)行固定次數(shù)的循環(huán),將循環(huán)條件的初值、判別和變化放在循環(huán)的開(kāi)頭。for循環(huán)語(yǔ)句的一般形式是:for(計(jì)數(shù)器=初值:增量:終止值)執(zhí)行語(yǔ)句,…,執(zhí)行語(yǔ)句end2)while循環(huán)語(yǔ)句while循環(huán)函數(shù)用于當(dāng)循環(huán)過(guò)程不滿足某個(gè)指定條件時(shí)終止的情況就,此時(shí)事先并不能確定循環(huán)的執(zhí)行次數(shù)。while循環(huán)的格式為while(邏輯表達(dá)式
6、)執(zhí)行語(yǔ)句end例:利用for循環(huán)求1!+2!+3!+???+5!的值sum=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;endsum=sum+pdr;end例:找出近似級(jí)數(shù)中誤差大于1%之前的最大的x值(精確到小數(shù)點(diǎn)后兩位位置)其MATLAB程序?yàn)椋簒=0;while(exp(x)-1-x-x^2/2-x^3/6<=0.01)x=x+0.01;enddisp(x-0.01)2.條件控制語(yǔ)句1)if、else、elseif語(yǔ)句if語(yǔ)句用來(lái)檢查邏輯運(yùn)算、邏輯函數(shù)、邏輯變量值等邏輯表達(dá)式的真假,若為真則執(zhí)行if和else之間的執(zhí)行語(yǔ)句,否則,轉(zhuǎn)去執(zhí)行另
7、一分支。其格式為:if邏輯表達(dá)式執(zhí)行語(yǔ)句1else執(zhí)行語(yǔ)句2end例:分區(qū)間顯示函數(shù)值functiony=f(x)ifx<0y=0;elseifx<1f=x;elseifx<2f=2-x;elsef=0;end2)switch語(yǔ)句switch函數(shù)的語(yǔ)法結(jié)構(gòu)為:switch輸入表達(dá)式(標(biāo)量或字符串)case條件語(yǔ)句1執(zhí)行語(yǔ)句1case條件語(yǔ)句2執(zhí)行語(yǔ)句2otherwise執(zhí)行語(yǔ)句nend例:根據(jù)用戶要求找出數(shù)組x中的最大值、最小值或所有元素的和。t=[0:100];x=exp(-t).*sin(t);%給定數(shù)組xre