版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Matlab
編程入門(mén)(一)Matlab編程入門(mén)
Matlab
編程簡(jiǎn)介
Matlab作為一種廣泛應(yīng)用于科學(xué)計(jì)算的工具軟件,不僅具有強(qiáng)大的數(shù)值計(jì)算、符號(hào)計(jì)算、矩陣運(yùn)算能力和豐富的繪圖功能,同時(shí)也具有和C、FORTRAN
等高級(jí)語(yǔ)言一樣進(jìn)行程序設(shè)計(jì)。在Matlab
程序設(shè)計(jì)中,可以充分利用Matlab數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),提高編程效率。利用Matlab
的程序控制功能,可以將有關(guān)Matlab
命令編成程序存儲(chǔ)在一個(gè)文件中(M
文件),然后在命令窗口中運(yùn)行該文件,Matlab
就會(huì)自動(dòng)依次執(zhí)行文件中的命令,直到全部命令執(zhí)行完畢。用Matlab語(yǔ)言編寫(xiě)的程序稱(chēng)為M文件。
M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,Matlab
提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab
語(yǔ)言開(kāi)發(fā)的M文件。用戶(hù)也可以結(jié)合自己的工作需要,開(kāi)發(fā)自己的程序或工具箱。
M文件根據(jù)調(diào)用方式的不同可以分為兩類(lèi):
Script:腳本文件/命令文件沒(méi)有輸入?yún)?shù),也不返回輸出參數(shù),也稱(chēng)為腳本文件。
Function:函數(shù)文件可以輸入?yún)?shù),也可返回輸出參數(shù)。
M文件
M
文件以.m
為擴(kuò)展名。命令文件
對(duì)于一些比較簡(jiǎn)單的問(wèn)題,在指令窗中直接輸入指令計(jì)算。
對(duì)于復(fù)雜計(jì)算,采用命令文件最為合適。MATLAB只是按文件所寫(xiě)的指令執(zhí)行。
命令文件的特點(diǎn)是:命令文件的構(gòu)成比較簡(jiǎn)單,只是一串按用戶(hù)意圖排列而成的MATLAB指令集合。命令文件運(yùn)行后,所產(chǎn)生的所有變量都駐留在MATLAB基本工作空間(Baseworkspace)中,而且,所產(chǎn)生的所有變量均為全局變量,只要用戶(hù)不使用清除指令(clear),MATLAB指令窗不關(guān)閉,這些變量將一直保存在基本工作空間中。函數(shù)文件
與腳本文件不同,函數(shù)文件猶如一個(gè)“黑箱”,把一些數(shù)據(jù)送進(jìn)并經(jīng)加工處理,再把結(jié)果送出來(lái)。MATLAB提供的函數(shù)指令大部分都是由函數(shù)文件定義的。
函數(shù)文件的特點(diǎn)是:
從形式上看,與腳本文件不同,函數(shù)文件的笫一行總是以“function”引導(dǎo)的“函數(shù)申明行”。從運(yùn)行上看,與腳本文件運(yùn)行不同,每當(dāng)函數(shù)文件運(yùn)行,MATLAB就會(huì)專(zhuān)門(mén)為它開(kāi)辟一個(gè)臨時(shí)工作空間,稱(chēng)為函數(shù)工作空間(Functionworkspace)。當(dāng)執(zhí)行文件最后一條指令時(shí),就結(jié)束該函數(shù)文件的運(yùn)行,同時(shí)該臨時(shí)函數(shù)空間及其所有的中間變量就立即被清除。MATLAB允許使用比“標(biāo)稱(chēng)數(shù)目”較少的輸入輸出變量,實(shí)現(xiàn)對(duì)函數(shù)的調(diào)用。
M
文件是一個(gè)文本文件,可以用任何文本編輯器來(lái)建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開(kāi)新建一個(gè)M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開(kāi)已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件在命令窗口中輸入f2cs,即可執(zhí)行該M
文件。例:編寫(xiě)一個(gè)命令文件將f轉(zhuǎn)化為c命令文件舉例clear;%清除當(dāng)前工作空間中的變量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('cis%g\n',c);新建一個(gè)M
文件
f2cs.m,內(nèi)容如下:腳本文件運(yùn)行后,文件中所產(chǎn)生的所有變量都駐留在Matlab當(dāng)前工作空間,可以用whos
查看。關(guān)系運(yùn)算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=
的區(qū)別關(guān)系操作符能用來(lái)比較兩個(gè)標(biāo)量,或兩個(gè)同樣大小的數(shù)組,或用來(lái)比較一個(gè)數(shù)組和一個(gè)標(biāo)量關(guān)系運(yùn)算符關(guān)系運(yùn)算符的運(yùn)算法則為:(1)當(dāng)兩個(gè)比較量是標(biāo)量時(shí),直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達(dá)式結(jié)果為1,否則為0。(2)當(dāng)參與比較的量是兩個(gè)維數(shù)相同的矩陣時(shí),比較是對(duì)兩矩陣相同位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)進(jìn)行,并給出元素比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。
(3)當(dāng)參與比較的一個(gè)是標(biāo)量,而另一個(gè)是矩陣時(shí),則把標(biāo)量與矩陣的每一個(gè)元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個(gè)比較,并給出元素比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個(gè)維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。關(guān)系運(yùn)算例:關(guān)系運(yùn)算舉例>>
2+2==4>>
2>3>>
A=[135;206];>>
B=[310;246];>>
A>=B>>
x=[50;42];>>
x<4例:
產(chǎn)生5階隨機(jī)方陣A,其元素為[10,90]區(qū)間的隨機(jī)整數(shù),然后判斷A的元素是否能被3整除。解:
(1)生成5階隨機(jī)方陣A。
A=round((90-10)*rand(5)+10)
(2)判斷A的元素是否可以被3整除。
P=rem(A,3)==0
其中,rem(A,3)是矩陣A的每個(gè)元素除以3的余數(shù)矩陣。此時(shí),0被擴(kuò)展為與A同維數(shù)的零矩陣,P是進(jìn)行等于(==)比較的結(jié)果矩陣。&與|或~非xor(x,y)異或邏輯運(yùn)算邏輯運(yùn)算符&&與(Short-circuitAND)||或(Short-circuitOR)A
&
B
等價(jià)于and(A,B)A
|
B
等價(jià)于or(A,B)
~
A
等價(jià)于not(A)運(yùn)算對(duì)象與或非異或ABA&BA|B~AXor(A,B)000010010111100101111100邏輯運(yùn)算表all(x)
如果向量X
中所有元素都非零,則返回1,
否則返回0若x為矩陣,則any
和all
按列運(yùn)算,返回一個(gè)0-1向量邏輯運(yùn)算相關(guān)函數(shù)any(x)如果向量X
中存在非零元素,則返回1,
否則返回0isfinite元素為有限值,返回真值1isinf元素為無(wú)窮大,返回真值1isnan元素為不定值,返回真值1isreal參量無(wú)虛部,返回真值1isstr參量為一個(gè)字符串,返回真值1isempty參量為空,返回真值1一些測(cè)試函數(shù)括號(hào)冪,點(diǎn)冪正號(hào),符號(hào),邏輯非乘,除,點(diǎn)乘,點(diǎn)除加,減冒號(hào)運(yùn)算關(guān)系運(yùn)算&|&&||運(yùn)算優(yōu)先級(jí)高低程序控制結(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ì)算或處理等。例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶(hù)輸入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)例:數(shù)據(jù)輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數(shù)據(jù)的輸出:fprintf
fid
為文件句柄,若缺省,則將變量的值輸出到屏幕上
format
用來(lái)指定數(shù)據(jù)輸出時(shí)采用的格式,常見(jiàn)的有%d(整數(shù))%e(實(shí)數(shù):采用科學(xué)計(jì)數(shù)法形式)%f(實(shí)數(shù):采用浮點(diǎn)數(shù)形式)%g(由系統(tǒng)自動(dòng)選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\b
(退格)
\\
(反斜桿)
%%
(百分號(hào))
數(shù)據(jù)輸出fprintf>>
a='Hello';b=2.4;c=100*pi;>>
fprintf('a=%s,b=%f,c=%e\n',a,b,c)例:
format
中的輸出格式要與輸出變量一一對(duì)應(yīng)
可以沒(méi)有輸出變量>>
fprintf('
TodayisMonday\n')例:pause
程序的暫停:pausepause或
pause(n)若想強(qiáng)行終止程序的運(yùn)行,可以使用Ctrl+c其中n
是延遲時(shí)間,以秒為單位;若缺省,則將暫停程序,直到用戶(hù)按任意鍵后繼續(xù)
pauseoff
屏蔽程序中所有
pause
的作用
pauseon
打開(kāi)
pause
的作用選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語(yǔ)句。Matlab
用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有if
語(yǔ)句和switch
語(yǔ)句。選擇結(jié)構(gòu)單分支結(jié)構(gòu)ifexpression
(條件)
statements(語(yǔ)句組)endif條件語(yǔ)句ifexpression(條件)
statements1(語(yǔ)句組1)else
statements2(語(yǔ)句組2)end雙分支結(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ǔ)句例輸入三角形的三條邊,利用海倫公式求面積。
程序:
A=input('請(qǐng)輸入三角形的三條邊:');ifA(1)+A(2)>A(3)&A(1)+A(3)>A(2)&A(2)+A(3)>A(1)
p=(A(1)+A(2)+A(3))/2;s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);else
disp('不能構(gòu)成一個(gè)三角形。')end程序示例運(yùn)行:請(qǐng)輸入三角形的三條邊:[456]9.9216根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語(yǔ)句。switchexpression(表達(dá)式)casevalue1(表達(dá)式1)
statement1(語(yǔ)句組1)casevalue2(表達(dá)式2)
statement2(語(yǔ)句組2)......casevaluem
(表達(dá)式m)
statementm(語(yǔ)句組m)otherwise
statement(語(yǔ)句組)endswitch語(yǔ)句
Matlab首先計(jì)算expression的值,然后將它依次與各個(gè)case指令后的檢測(cè)值進(jìn)行比較,當(dāng)比較結(jié)果為真時(shí),就執(zhí)行相應(yīng)的語(yǔ)句組,然后跳出switch結(jié)構(gòu)。
switch后面的表達(dá)式expression的值可以是一個(gè)標(biāo)量或字符串。switch語(yǔ)句
otherwise指令可以不出現(xiàn)。如果所有的比較結(jié)果都為假,則執(zhí)行otherwise后面的語(yǔ)句組,然后跳出switch結(jié)構(gòu)。例
某商場(chǎng)對(duì)顧客所購(gòu)買(mǎi)的商品實(shí)行打折銷(xiāo)售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來(lái)表示):
price<200沒(méi)有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣5000≤price14%折扣輸入所售商品的價(jià)格,求其實(shí)際銷(xiāo)售價(jià)格。程序示例
程序如下:price=input('請(qǐng)輸入商品價(jià)格');switch
fix(price/100)
case{0,1}%價(jià)格小于200rate=0;
case{2,3,4}%價(jià)格大于等于200但小于500rate=3/100;
casenum2cell(5:9)%價(jià)格大于等于500但小于1000rate=5/100;
casenum2cell(10:24)%價(jià)格大于等于1000但小于2500rate=8/100;
casenum2cell(25:49)%價(jià)格大于等于2500但小于5000rate=10/100;
otherwise
%價(jià)格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實(shí)際銷(xiāo)售價(jià)格程序示例循環(huán)結(jié)構(gòu)是按照給定的條件,重復(fù)執(zhí)行指定的語(yǔ)句。Matlab用于實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句有for語(yǔ)句和while語(yǔ)句循環(huán)結(jié)構(gòu)forvariable=expression
statement(循環(huán)體)end循環(huán)變量
表達(dá)式expression
可以是行向量,也可以是矩陣。執(zhí)行過(guò)程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語(yǔ)句,直至各列元素處理完畢。for循環(huán)clear;y=0;n=100;fork=1:n
y=y+1/(2*k-1);end例:已
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年科技園區(qū)物業(yè)合同續(xù)簽及創(chuàng)新產(chǎn)業(yè)導(dǎo)入?yún)f(xié)議2篇
- 2024年節(jié)水型社會(huì)建設(shè)滴灌系統(tǒng)合同
- 2024年結(jié)構(gòu)鋼管訂購(gòu)協(xié)議3篇
- 武昌彩色鉛筆畫(huà)課程設(shè)計(jì)
- 算術(shù)表達(dá)式計(jì)算課程設(shè)計(jì)
- 物流管理課程設(shè)計(jì)要求
- 2024年度行政后勤員工聘用與福利保障協(xié)議3篇
- 2024年度重點(diǎn)學(xué)科特聘教授任期合作協(xié)議3篇
- 排球課程設(shè)計(jì)要點(diǎn)
- 2024年度行政協(xié)議法律適用風(fēng)險(xiǎn)防范策略3篇
- 2024年全國(guó)職業(yè)院校技能大賽高職組(智慧物流賽項(xiàng))考試題庫(kù)(含答案)
- 2024-2025學(xué)年部編版初中7語(yǔ)文-貴州期末真題卷(上)答案
- 黑龍江省綠綏化市綏棱縣2023-2024學(xué)年八年級(jí)(五四學(xué)制)上學(xué)期期末語(yǔ)文試題
- 國(guó)家開(kāi)放大學(xué)2024春《1472藥劑學(xué)(本)》期末考試真題及答案-開(kāi)放本科
- 四年級(jí)數(shù)學(xué)人教版(上冊(cè))第1課時(shí)口算除法(課件)
- 廣西南寧學(xué)院招聘專(zhuān)任教師筆試真題2023
- 網(wǎng)絡(luò)安全測(cè)評(píng)整改投標(biāo)方案(技術(shù)方案)
- 抗菌藥物臨床應(yīng)用指導(dǎo)原則版
- 2024中考語(yǔ)文《儒林外史》歷年真題專(zhuān)練(學(xué)生版+解析版)
- 學(xué)校自我內(nèi)部控制評(píng)價(jià)范文
- 海洋氣象大數(shù)據(jù)挖掘與應(yīng)用
評(píng)論
0/150
提交評(píng)論