




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Matlab
編程入門(一)Matlab編程入門
Matlab
編程簡介
Matlab作為一種廣泛應用于科學計算的工具軟件,不僅具有強大的數(shù)值計算、符號計算、矩陣運算能力和豐富的繪圖功能,同時也具有和C、FORTRAN
等高級語言一樣進行程序設計。在Matlab
程序設計中,可以充分利用Matlab數(shù)據(jù)結(jié)構(gòu)的特點,提高編程效率。利用Matlab
的程序控制功能,可以將有關(guān)Matlab
命令編成程序存儲在一個文件中(M
文件),然后在命令窗口中運行該文件,Matlab
就會自動依次執(zhí)行文件中的命令,直到全部命令執(zhí)行完畢。用Matlab語言編寫的程序稱為M文件。
M文件是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實現(xiàn)某種算法。事實上,Matlab
提供的內(nèi)部函數(shù)以及各種工具箱,都是利用Matlab
語言開發(fā)的M文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。
M文件根據(jù)調(diào)用方式的不同可以分為兩類:
Script:腳本文件/命令文件沒有輸入?yún)?shù),也不返回輸出參數(shù),也稱為腳本文件。
Function:函數(shù)文件可以輸入?yún)?shù),也可返回輸出參數(shù)。
M文件
M
文件以.m
為擴展名。命令文件
對于一些比較簡單的問題,在指令窗中直接輸入指令計算。
對于復雜計算,采用命令文件最為合適。MATLAB只是按文件所寫的指令執(zhí)行。
命令文件的特點是:命令文件的構(gòu)成比較簡單,只是一串按用戶意圖排列而成的MATLAB指令集合。命令文件運行后,所產(chǎn)生的所有變量都駐留在MATLAB基本工作空間(Baseworkspace)中,而且,所產(chǎn)生的所有變量均為全局變量,只要用戶不使用清除指令(clear),MATLAB指令窗不關(guān)閉,這些變量將一直保存在基本工作空間中。函數(shù)文件
與腳本文件不同,函數(shù)文件猶如一個“黑箱”,把一些數(shù)據(jù)送進并經(jīng)加工處理,再把結(jié)果送出來。MATLAB提供的函數(shù)指令大部分都是由函數(shù)文件定義的。
函數(shù)文件的特點是:
從形式上看,與腳本文件不同,函數(shù)文件的笫一行總是以“function”引導的“函數(shù)申明行”。從運行上看,與腳本文件運行不同,每當函數(shù)文件運行,MATLAB就會專門為它開辟一個臨時工作空間,稱為函數(shù)工作空間(Functionworkspace)。當執(zhí)行文件最后一條指令時,就結(jié)束該函數(shù)文件的運行,同時該臨時函數(shù)空間及其所有的中間變量就立即被清除。MATLAB允許使用比“標稱數(shù)目”較少的輸入輸出變量,實現(xiàn)對函數(shù)的調(diào)用。
M
文件是一個文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開新建一個M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件在命令窗口中輸入f2cs,即可執(zhí)行該M
文件。例:編寫一個命令文件將f轉(zhuǎn)化為c命令文件舉例clear;%清除當前工作空間中的變量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('cis%g\n',c);新建一個M
文件
f2cs.m,內(nèi)容如下:腳本文件運行后,文件中所產(chǎn)生的所有變量都駐留在Matlab當前工作空間,可以用whos
查看。關(guān)系運算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結(jié)論是真則返回1,否則返回0注意==與=
的區(qū)別關(guān)系操作符能用來比較兩個標量,或兩個同樣大小的數(shù)組,或用來比較一個數(shù)組和一個標量關(guān)系運算符關(guān)系運算符的運算法則為:(1)當兩個比較量是標量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0。(2)當參與比較的量是兩個維數(shù)相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關(guān)系運算規(guī)則逐個進行,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。
(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。關(guān)系運算例:關(guān)系運算舉例>>
2+2==4>>
2>3>>
A=[135;206];>>
B=[310;246];>>
A>=B>>
x=[50;42];>>
x<4例:
產(chǎn)生5階隨機方陣A,其元素為[10,90]區(qū)間的隨機整數(shù),然后判斷A的元素是否能被3整除。解:
(1)生成5階隨機方陣A。
A=round((90-10)*rand(5)+10)
(2)判斷A的元素是否可以被3整除。
P=rem(A,3)==0
其中,rem(A,3)是矩陣A的每個元素除以3的余數(shù)矩陣。此時,0被擴展為與A同維數(shù)的零矩陣,P是進行等于(==)比較的結(jié)果矩陣。&與|或~非xor(x,y)異或邏輯運算邏輯運算符&&與(Short-circuitAND)||或(Short-circuitOR)A
&
B
等價于and(A,B)A
|
B
等價于or(A,B)
~
A
等價于not(A)運算對象與或非異或ABA&BA|B~AXor(A,B)000010010111100101111100邏輯運算表all(x)
如果向量X
中所有元素都非零,則返回1,
否則返回0若x為矩陣,則any
和all
按列運算,返回一個0-1向量邏輯運算相關(guān)函數(shù)any(x)如果向量X
中存在非零元素,則返回1,
否則返回0isfinite元素為有限值,返回真值1isinf元素為無窮大,返回真值1isnan元素為不定值,返回真值1isreal參量無虛部,返回真值1isstr參量為一個字符串,返回真值1isempty參量為空,返回真值1一些測試函數(shù)括號冪,點冪正號,符號,邏輯非乘,除,點乘,點除加,減冒號運算關(guān)系運算&|&&||運算優(yōu)先級高低程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復雜的程序都由這三種基本結(jié)構(gòu)組成。順序結(jié)構(gòu)M文件控制流按排列順序依次執(zhí)行各條語句,直到程序的最后。這是最簡單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計算或處理等。例:A=input('PleaseinputA:')數(shù)據(jù)的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數(shù)或字符串)數(shù)據(jù)輸入inputA=input(提示信息,'s')注:此時輸入的字符串不要加單引號!如果是輸入字符串,也可以使用下面的方法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
用來指定數(shù)據(jù)輸出時采用的格式,常見的有%d(整數(shù))%e(實數(shù):采用科學計數(shù)法形式)%f(實數(shù):采用浮點數(shù)形式)%g(由系統(tǒng)自動選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\b
(退格)
\\
(反斜桿)
%%
(百分號)
數(shù)據(jù)輸出fprintf>>
a='Hello';b=2.4;c=100*pi;>>
fprintf('a=%s,b=%f,c=%e\n',a,b,c)例:
format
中的輸出格式要與輸出變量一一對應
可以沒有輸出變量>>
fprintf('
TodayisMonday\n')例:pause
程序的暫停:pausepause或
pause(n)若想強行終止程序的運行,可以使用Ctrl+c其中n
是延遲時間,以秒為單位;若缺省,則將暫停程序,直到用戶按任意鍵后繼續(xù)
pauseoff
屏蔽程序中所有
pause
的作用
pauseon
打開
pause
的作用選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab
用于實現(xiàn)選擇結(jié)構(gòu)的語句有if
語句和switch
語句。選擇結(jié)構(gòu)單分支結(jié)構(gòu)ifexpression
(條件)
statements(語句組)endif條件語句ifexpression(條件)
statements1(語句組1)else
statements2(語句組2)end雙分支結(jié)構(gòu)ifexpression1(條件1)
statements1(語句組1)elseifexpression2(條件2)
statements2(語句組2)......
elseifexpressionm(條件m)
statementsm(語句組m)else
statements(語句組)end多分支結(jié)構(gòu)if條件語句例輸入三角形的三條邊,利用海倫公式求面積。
程序:
A=input('請輸入三角形的三條邊:');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)成一個三角形。')end程序示例運行:請輸入三角形的三條邊:[456]9.9216根據(jù)表達式的不同取值,分別執(zhí)行不同的語句。switchexpression(表達式)casevalue1(表達式1)
statement1(語句組1)casevalue2(表達式2)
statement2(語句組2)......casevaluem
(表達式m)
statementm(語句組m)otherwise
statement(語句組)endswitch語句
Matlab首先計算expression的值,然后將它依次與各個case指令后的檢測值進行比較,當比較結(jié)果為真時,就執(zhí)行相應的語句組,然后跳出switch結(jié)構(gòu)。
switch后面的表達式expression的值可以是一個標量或字符串。switch語句
otherwise指令可以不出現(xiàn)。如果所有的比較結(jié)果都為假,則執(zhí)行otherwise后面的語句組,然后跳出switch結(jié)構(gòu)。例
某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price來表示):
price<200沒有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣5000≤price14%折扣輸入所售商品的價格,求其實際銷售價格。程序示例
程序如下:price=input('請輸入商品價格');switch
fix(price/100)
case{0,1}%價格小于200rate=0;
case{2,3,4}%價格大于等于200但小于500rate=3/100;
casenum2cell(5:9)%價格大于等于500但小于1000rate=5/100;
casenum2cell(10:24)%價格大于等于1000但小于2500rate=8/100;
casenum2cell(25:49)%價格大于等于2500但小于5000rate=10/100;
otherwise
%價格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實際銷售價格程序示例循環(huán)結(jié)構(gòu)是按照給定的條件,重復執(zhí)行指定的語句。Matlab用于實現(xiàn)循環(huán)結(jié)構(gòu)的語句有for語句和while語句循環(huán)結(jié)構(gòu)forvariable=expression
statement(循環(huán)體)end循環(huán)變量
表達式expression
可以是行向量,也可以是矩陣。執(zhí)行過程是依次將矩陣的各列元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。for循環(huán)clear;y=0;n=100;fork=1:n
y=y+1/(2*k-1);end例:已
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安陽地產(chǎn)市場報告終稿教案(2025-2026學年)
- 酒店廚房衛(wèi)生與食材管理規(guī)范
- 快遞物流配送管理流程全解析
- 信息系統(tǒng)項目管理實務與案例
- 倉庫物料盤點制度與操作流程規(guī)范
- 養(yǎng)老院的合同(標準版)
- (正式版)DB13∕T 6148-2025 《冀北地區(qū)退化草地生態(tài)修復技術(shù)規(guī)程》
- 新手教師入職培訓全攻略
- 橋梁施工合同制定標準
- 企業(yè)技能提升培訓方案
- 洗煤安全培訓課件
- 2025湖北武漢市市直機關(guān)遴選公務員111人筆試參考題庫附答案解析
- 2025年度中國石化畢業(yè)生招聘統(tǒng)一初選考試筆試參考題庫附帶答案詳解
- 2024年演出經(jīng)紀人考試真題解析與試題及答案
- 病媒生物防制巡查記錄
- 體檢中心工作制度及崗位職責
- 大國兵器(中北大學)學習通網(wǎng)課章節(jié)測試答案
- 2025年公務員公開遴選筆試試題及答案(綜合類)
- 門座式起重機司機模擬題(附答案)
- 水利水電安全生產(chǎn)應急預案措施
- 醫(yī)療質(zhì)量安全專項整治行動自查清單8-患者隱私
評論
0/150
提交評論