版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Matlab
入門—程序設(shè)計(jì)1第5節(jié)MATLAB程序設(shè)計(jì)5.1M文件5.2程序控制結(jié)構(gòu)5.3函數(shù)文件5.4程序舉例5.5程序調(diào)試25.1Matlab程序設(shè)計(jì)5.1.1M文件概述用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(ScriptFile)和函數(shù)文件(FunctionFile)。它們都以.M格式保存。函數(shù)文件的M文件名必須與函數(shù)名一致!函數(shù)文件的第一行必須是以特殊字符function開始,格式為function[輸出形參表]=函數(shù)名(輸入形參表)函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當(dāng)輸出形參多于一個(gè)時(shí),則應(yīng)該用方括號(hào)括起來。3命令文件執(zhí)行格式:文件名函數(shù)文件調(diào)用格式:[輸出實(shí)參表]=函數(shù)名(輸入實(shí)參表)
例:[a,b,c]=my_fun(d,e,f,c)
M文件的調(diào)用:1.建立M文件:fun.m2.可以直接使用函數(shù)fun.m例如:計(jì)算f(3.2),只需在Matlab命令窗口鍵入命令:M=fun(3.2)例不需要C語言類似的編譯過程!functionf=fun(x)f=2*(x^2)+5*x注意:函數(shù)調(diào)用時(shí)各實(shí)參出現(xiàn)的順序、個(gè)數(shù),應(yīng)與函數(shù)定義時(shí)形參的順序、個(gè)數(shù)一致,否則會(huì)出錯(cuò)。函數(shù)調(diào)用時(shí),先將實(shí)參傳遞給相應(yīng)的形參,從而實(shí)現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。45.1.2M文件的建立與打開
M文件是一個(gè)文本文件,使用MATLAB提供的文本編輯器來建立和編輯(1)建立新的M文件為建立新的M文件,啟動(dòng)MATLAB文本編輯器有3種方法:
(1)菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項(xiàng),再選擇M-file命令,屏幕上將出現(xiàn)MATLAB文本編輯器窗口。
(2)命令操作。在MATLAB命令窗口輸入命令edit,啟動(dòng)MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕,啟動(dòng)MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。5(2)打開已有的M文件
(1)菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進(jìn)行編輯修改,編輯完成后,將M文件存盤。
(2)命令操作。在MATLAB命令窗口輸入命令:edit文件名,則打開指定的M文件。
(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。6例5-1分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。程序1:
首先建立命令文件并以文件名f2c.m存盤。clear;%清除工作空間中的變量f=input('InputFahrenheittemperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中輸入f2c,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為:InputFahrenheittemperature:73c=22.7778注意Matlab的搜索路徑問題7程序2:首先建立函數(shù)文件f2d.m。functionc=f2d(f)c=5*(f-32)/9然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。clear;y=input('InputFahrenheittemperature:');x=f2d(y)輸出情況為:InputFahrenheittemperature:70c=21.1111x=21.111185.2程序控制結(jié)構(gòu)5.2.1順序結(jié)構(gòu)(1)數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來進(jìn)行,該函數(shù)的調(diào)用格式為:
A=input(‘提示信息’,選項(xiàng));其中提示信息為一個(gè)字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。例:data1=input('pleaseinputthevalueI')data1=input(‘pleaseinputthevalueI\n')
如果在input函數(shù)調(diào)用時(shí)采用's'選項(xiàng),則允許用戶輸入一個(gè)字符串。例如,想輸入一個(gè)人的姓名,可采用命令:
例xm=input('What''syourname?','s');9(2)數(shù)據(jù)的輸出MATLAB提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為:disp(輸出項(xiàng))其中輸出項(xiàng)既可以為字符串,也可以為矩陣。例3-2輸入x,y的值,并將它們的值互換后輸出。程序如下:
x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;
disp(x);
disp(y);10(3)程序的暫停
暫停程序的執(zhí)行使用pause函數(shù),其調(diào)用格式為:
pause(延遲秒數(shù))
如果省略延遲時(shí)間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。11(1)if語句
5.2.2分支結(jié)構(gòu)命令的序列必須根據(jù)關(guān)系的檢驗(yàn)有條件的執(zhí)行121)單分支if語句
if
條件語句組
end
2)雙分支if語句
if
條件語句組1else
語句組2end
(3)多分支if語句:
if
條件1
語句組1
elseif
條件2
語句組2……
elseif
條件m
語句組m
else
語句組n
end注:在執(zhí)行過程中,MATLAB依次檢查各個(gè)表達(dá)式,只執(zhí)行第一個(gè)表達(dá)式為真的命令串,接下來的關(guān)系表達(dá)式不檢驗(yàn),跳過其余的if-else-end結(jié)構(gòu),而且,最后的else命令可有可無。If語句有三種格式:13先建立M文件fun1.m定義函數(shù)f(x),再在Matlab命令窗口輸入fun1(2),fun1(-1)即可。functionf=fun1(x)
ifx>1f=x^2+1;
elsef=2*x;
end14例3-5輸入一個(gè)字符,若為大寫字母,則輸出其對應(yīng)的小寫字母;若為小寫字母,則輸出其對應(yīng)的大寫字母;若為數(shù)字字符則輸出其對應(yīng)的數(shù)值,若為其他字符則原樣輸出。c=input('請輸入一個(gè)字符','s');ifc>='A'&c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'
disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));else
disp(c);endASCII碼a~z:61H-7AHA~Z:41H-5A0~9:30H-39H15(2)switch語句
switch語句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語句,這相當(dāng)于多條if語句的嵌套使用其語句格式為:
switch
表達(dá)式
case
表達(dá)式1
語句組1
case
表達(dá)式2
語句組2……
case
表達(dá)式m
語句組m
otherwise
語句組n
end16switchvar1case-1disp(‘Var1isnegativeone.’)case0disp(‘Var1iszero.’)case1disp(‘Var1ispositiveone.’)otherwisedisp(‘Var1isothervalue.’)end在case語句中可出現(xiàn)多個(gè)值,例如switchvar2case{-2,-1}disp('Var2isnegativeoneortwo.')case0disp('Var2iszero.')case{1,2,3}disp('Var2ispositiveone,twoorthree.')otherwisedisp('Var2isothervalue.')end17(3)try語句語句格式為:
try
語句組1
catch
語句組2
endtry語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。18例3-7矩陣乘法運(yùn)算要求兩矩陣的維數(shù)相容,否則會(huì)出錯(cuò)。先求兩矩陣的乘積,若出錯(cuò),則自動(dòng)轉(zhuǎn)去求兩矩陣的點(diǎn)乘。程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯(cuò)原因195.2.3循環(huán)結(jié)構(gòu)(1)for語句
for語句的格式為:
for
循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3
循環(huán)體語句
end
其中表達(dá)式1的值為循環(huán)變量的初值,表達(dá)式2的值為步長,表達(dá)式3的值為循環(huán)變量的終值。步長為1時(shí),表達(dá)式2可以省略。20例3-8
一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。程序如下:form=100:999m1=fix(m/100);%求m的百位數(shù)字
m2=rem(fix(m/10),10);%求m的十位數(shù)字
m3=rem(m,10);%求m的個(gè)位數(shù)字
ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3
disp(m)
endendrem(X,Y)函數(shù)功能:求X/Y的余數(shù)21for語句更一般的格式為:
for循環(huán)變量=矩陣表達(dá)式循環(huán)體語句
end
執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。例3-10寫出下列程序的執(zhí)行結(jié)果。
s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;end
disp(s);應(yīng)熟練掌握!22
while語句的一般格式為:
while(條件)
循環(huán)體語句
end
其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。與for循環(huán)以固定次數(shù)執(zhí)行一組命令相反,while循環(huán)以不定的次數(shù)執(zhí)行一組語句.(2)while語句23例3-11
從鍵盤輸入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束輸入,求這些數(shù)的平均值和它們之和。程序如下:sum=0;%存放部分和cnt=0;%存放輸入的數(shù)的個(gè)數(shù)val=input('Enteronenumber(endin0):');while(val~=0)sum=sum+val;
cnt=cnt+1;
val=input('Enteronenumber(endin0):');endif(cnt>0)summean=sum/cntend24(3)break語句和continue語句與循環(huán)結(jié)構(gòu)相關(guān)的語句還有break語句和continue語句。它們一般與if語句配合使用。
break語句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時(shí),程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。
continue語句控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時(shí),程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。25例3-12
求[100
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 演講稿小短文合集【五篇】
- 2025年清潔漂白項(xiàng)目申請報(bào)告
- 2024-2025學(xué)年西藏拉薩市城關(guān)區(qū)數(shù)學(xué)三上期末檢測試題含解析
- 2025年工業(yè)廢水處理項(xiàng)目提案報(bào)告模范
- 2025年無玷污采水器項(xiàng)目規(guī)劃申請報(bào)告模范
- 2025年聲學(xué)海流計(jì)項(xiàng)目提案報(bào)告模板
- 2025年沼氣設(shè)備項(xiàng)目申請報(bào)告模稿
- 募捐倡議書模板錦集八篇
- 青銅葵花讀后感匯編15篇
- 關(guān)于會(huì)計(jì)專業(yè)自我鑒定集錦9篇
- AltiumDesigner電路與PCB設(shè)計(jì)智慧樹知到期末考試答案章節(jié)答案2024年四川郵電職業(yè)技術(shù)學(xué)院
- DL∕T 2528-2022 電力儲(chǔ)能基本術(shù)語
- 大學(xué)英語聽說一智慧樹知到期末考試答案章節(jié)答案2024年西北政法大學(xué)
- 《中醫(yī)適宜技術(shù)》期末考試復(fù)習(xí)題庫(含答案)
- 管理英語3-國開機(jī)考答案
- 國開機(jī)考答案-工程力學(xué)(本)(閉卷)
- 碳交易與碳金融基礎(chǔ) 課件全套 第1-9章 碳交易市場形成背景-碳金融工具與創(chuàng)新
- 生物入侵與生物安全智慧樹知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- 《公路工程集料試驗(yàn)規(guī)程》JTG-3432-2024考核試題及答案文檔
- 常見的排序算法-冒泡排序 課件 2023-2024學(xué)年浙教版(2019)高中信息技術(shù)選修1
- 中學(xué)教師基本功培訓(xùn)講座
評論
0/150
提交評論