




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基礎(chǔ)編程MATLAB第三章編程基礎(chǔ)關(guān)系與邏輯運(yùn)算1數(shù)據(jù)輸入與輸出2函數(shù)文件3選擇與循環(huán)語(yǔ)句4程序設(shè)計(jì)技巧簡(jiǎn)介5用Matlab語(yǔ)言編寫的程序稱為M文件。
M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,Matlab
提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab
語(yǔ)言開發(fā)的M文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。
M文件根據(jù)調(diào)用方式的不同可以分為兩類:
Script:腳本文件/命令文件
Function:函數(shù)文件M文件
M
文件以.m
為擴(kuò)展名。
M
文件是一個(gè)文本文件,可以用任何文本編輯器來(lái)建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開新建一個(gè)M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。M文件控制流選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語(yǔ)句。Matlab
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有if
語(yǔ)句和switch
語(yǔ)句。關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=
的區(qū)別關(guān)系操作符能用來(lái)比較兩個(gè)同樣大小的數(shù)組,或用來(lái)比較一個(gè)數(shù)組和一個(gè)標(biāo)量,在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,比較結(jié)果與數(shù)組大小一樣。關(guān)系運(yùn)算符&與(ElementwiseAND)|或(ElementwiseOR)~
非xor(x,y)
異或邏輯運(yùn)算邏輯運(yùn)算符A
&
B
等價(jià)于and(A,B)A
|
B
等價(jià)于or(A,B)
~
A
等價(jià)于not(A)例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數(shù)或字符串)數(shù)據(jù)輸入inputA=input(提示信息,'s')注:此時(shí)輸入的字符串不要加單引號(hào)!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:disp(X)輸出變量X的值,可以是數(shù)值矩陣或字符串>>
B=[123;456;789];>>
disp(B)數(shù)據(jù)輸出disp數(shù)據(jù)的輸出:disp>>
A='Hello,Tom!';>>
disp(A)例:?jiǎn)畏种ЫY(jié)構(gòu)ifexpression
(條件)
statements(語(yǔ)句組)endif條件語(yǔ)句ifexpression(條件)
statements1(語(yǔ)句組1)else
statements2(語(yǔ)句組2)end雙分支結(jié)構(gòu)數(shù)據(jù)輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數(shù)據(jù)的輸出:fprintf
fid
為文件句柄,若缺省,則將變量的值輸出到屏幕上
format
用來(lái)指定數(shù)據(jù)輸出時(shí)采用的格式,常見的有%e(采用科學(xué)計(jì)算形式)%f(采用浮點(diǎn)數(shù)形式)%g(由系統(tǒng)自動(dòng)選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\t
(制表符)\b
(退格)
\\
(反斜桿)
%%
(百分號(hào))
數(shù)據(jù)輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:
format
中的輸出格式要與輸出變量一一對(duì)應(yīng)function
[out1,out2,…]=函數(shù)名(in1,in2,…)%注釋說(shuō)明部分(可選)函數(shù)體語(yǔ)句(必須)
第一行為引導(dǎo)行,表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭
)當(dāng)輸出行參多于一個(gè)時(shí),用方括號(hào)括起來(lái)函數(shù)必須是一個(gè)單獨(dú)的M文件函數(shù)文件名必須與函數(shù)名一致以百分號(hào)開始的語(yǔ)句為注釋語(yǔ)句函數(shù)文件函數(shù)文件由function
語(yǔ)句引導(dǎo)函數(shù)文件舉例myfun.mfunction
[x1,x2]=myfun(a,b,c)temp=sqrt(b^2-4*a*c);x1=(-b+temp)/2/a;x2=(-b-temp)/2/a;函數(shù)調(diào)用的一般格式輸出實(shí)參列表=函數(shù)名(輸入實(shí)參列表)函數(shù)調(diào)用子函數(shù)functionavg=fun(x)%主函數(shù)
n=length(x);avg=mean(x,n);functiona=mean(x,n)%子函數(shù)a=sum(x)/n;M文件的編輯與路徑設(shè)置進(jìn)入MATLAB的Editor/Debugger窗口來(lái)編輯程序在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。
綠色:注解;黑色:程序主體;紅色:屬性值的設(shè)定;藍(lán)色:控制流程。在運(yùn)行程序之前,必須設(shè)置好MATLAB的工作路徑程序設(shè)計(jì)技術(shù)程序出錯(cuò)主要為兩類:1)格式錯(cuò)誤,如缺‘(’或‘)’等,在運(yùn)行時(shí)可檢測(cè)出大多數(shù)該類錯(cuò)誤,并指出錯(cuò)在哪一行。2)算法錯(cuò)誤,邏輯上的錯(cuò)誤,不易查找,遇到此類錯(cuò)誤時(shí)需耐心。程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成。
順序結(jié)構(gòu)M文件控制流按排列順序依次執(zhí)行各條語(yǔ)句,直到程序的最后。這是最簡(jiǎn)單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計(jì)算或處理等。選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語(yǔ)句。Matlab
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有if
語(yǔ)句和switch
語(yǔ)句。選擇結(jié)構(gòu)ifexpression1(條件1)
statements1(語(yǔ)句組1)elseifexpression2(條件2)
statements2(語(yǔ)句組2)
......
elseifexpressionm(條件m)
statementsm(語(yǔ)句組m)else
statements(語(yǔ)句組)end多分支結(jié)構(gòu)if條件語(yǔ)句if表達(dá)式1
語(yǔ)句體1elseif表達(dá)式2
語(yǔ)句體2
¦else
語(yǔ)句體nend
在執(zhí)行for-end循環(huán)和while-end循環(huán)語(yǔ)句時(shí),可以利用“if+break”語(yǔ)句中止循環(huán)運(yùn)算。
當(dāng)有多個(gè)條件時(shí),若條件式1為假,則再判斷elseif的條件式2,如果所有條件式都不滿足,則執(zhí)行else的語(yǔ)句體n,然后跳出if–else-end結(jié)構(gòu);當(dāng)條件式為真則執(zhí)行相應(yīng)的語(yǔ)句體,否則跳過(guò)該語(yǔ)句體。
if–else-end結(jié)構(gòu)也可以是沒(méi)有elseif和else的簡(jiǎn)單結(jié)構(gòu),但if和end是不可省略且必須配對(duì)使用。編制M函數(shù)文件,實(shí)現(xiàn)不等長(zhǎng)多項(xiàng)式的加法運(yùn)算。forvariable=expression
statement(循環(huán)體)end循環(huán)變量循環(huán)結(jié)構(gòu)whileexpression(條件)
statement(循環(huán)體)endfor循環(huán)【練習(xí)】一個(gè)三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。例:用循環(huán)求解>>s=0;fori=1:100s=s+i;end>>s=0;i=1;while(i<=100)s=s+i;i=i+1;end>>sum(1:100)ans=5050例:用循環(huán)求解求最小的m,使得>>s=0;m=0;while(s<=10000),m=m+1;s=s+m;end,[s,m]%求出的m即是所求ans=10011141
例:求>>tic,s=0;fori=1:100000,s=s+1/2^i+1/3^i;end;tocelapsed_time=1.1820>>tic,i=1:100000;s=sum(1./2.^i+1./3.^i);toc%向量化所需時(shí)間少elapsed_time=0.3010>>i=1:10;s=1./2.^i+1./3.^i,ss=sum(1./2.^i+1./3.^i)s=0.83330.36110.16200.07480.03540.01700.00830.00410.00200.0010ss=1.4990循環(huán)語(yǔ)句可以嵌套使用while循環(huán)whileexpression(條件)
statement(循環(huán)體)end不能在for循環(huán)體內(nèi)改變循環(huán)變量的值為了提高代碼的運(yùn)行效率,應(yīng)盡可能提高代碼的向量化程度,避免
for循環(huán)的使用如果預(yù)先就知道循環(huán)的次數(shù),則可以采用for循環(huán);否則,如果預(yù)先無(wú)法確定循環(huán)的次數(shù),則可以使用while循環(huán)。while循環(huán)舉例【例】Fibonacci數(shù)組的元素滿足Fibonacci規(guī)則:且?,F(xiàn)要求該數(shù)組中第一個(gè)大于10000的元素。a(1)=1;a(2)=1;i=3;a(i)=a(i-1)+a(i-2);whilea(i)<=10000i=i+1; a(i)=a(i-1)+a(i-2);endi,a(i),
break
和
continue
break
語(yǔ)句用于終止循環(huán)的執(zhí)行,即跳出最內(nèi)層循環(huán)
continue
語(yǔ)句用于結(jié)束本次循環(huán),進(jìn)行下一次循環(huán)
break
和continue
一般與if
語(yǔ)句配合使用其它流控制語(yǔ)句
return
return
語(yǔ)句用于退出正在運(yùn)行的腳本或函數(shù),通常用在函數(shù)文件中。continue語(yǔ)句【例】把100到120之間的能被7整除的整數(shù)輸出。fori=100:120
ifrem(i,7)~=0
continue
endiendbreak語(yǔ)句【例】輸出100到120之間第一個(gè)能被7整除的整數(shù)fori=100:120
ifrem(i,7)~=0
continue
endibreakend例:用循環(huán)求解求最大的m,
>>s=0;fori=1:10000s=s+i;ifs>10000,break;endend>>ii=141return語(yǔ)句functionoutput=fact(n)ifn==1output=1;return;endoutput=n*fact(n-1);根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語(yǔ)句。switchexpression(表達(dá)式)
casevalue1(表達(dá)式1)
statement1(語(yǔ)句組1)
casevalue2(表達(dá)式2)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 母豬分娩應(yīng)急處理試題及答案
- 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師考試綜合素質(zhì)提升試題及答案
- 更新健康管理師考試信息試題及答案
- 醫(yī)學(xué)基礎(chǔ)知識(shí)學(xué)科交叉學(xué)習(xí)試題及答案
- 護(hù)理行業(yè)發(fā)展的助力因素試題及答案
- 傳授信息系統(tǒng)項(xiàng)目管理師考試成功經(jīng)驗(yàn)試題及答案
- 深度剖析醫(yī)學(xué)基礎(chǔ)知識(shí)試題及答案
- 病理三基試題及答案
- 備考狀態(tài)調(diào)整2025年稅務(wù)師考試試題及答案
- 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師考試技術(shù)更新應(yīng)對(duì)策略試題及答案
- 駱駝祥子考點(diǎn)單選題100道及答案解析
- 李白《南陵別兒童入京》課件
- 數(shù)學(xué)新課程標(biāo)準(zhǔn)解讀(2)聚焦核心素養(yǎng)關(guān)注終身發(fā)展課件
- 2024至2030年中國(guó)聲樂(lè)器樂(lè)培訓(xùn)行業(yè)發(fā)展運(yùn)行現(xiàn)狀及投資潛力預(yù)測(cè)報(bào)告
- 癥狀護(hù)理-疼痛課件
- DL∕T 1056-2019 發(fā)電廠熱工儀表及控制系統(tǒng)技術(shù)監(jiān)督導(dǎo)則
- 淺析脈沖電子圍欄技術(shù)發(fā)展及應(yīng)用
- 消防責(zé)任劃分協(xié)議書
- 乳腺癌篩查指南
- 【京東物流倉(cāng)儲(chǔ)管理的主要問(wèn)題探析5300字(論文)】
- 配電變壓器能效技術(shù)經(jīng)濟(jì)評(píng)價(jià)導(dǎo)則
評(píng)論
0/150
提交評(píng)論