




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基礎編程MATLAB第三章編程基礎關系與邏輯運算1數據輸入與輸出2函數文件3選擇與循環語句4程序設計技巧簡介5用Matlab語言編寫的程序稱為M文件。
M文件是由若干Matlab命令組合在一起構成的,它可以完成某些操作,也可以實現某種算法。事實上,Matlab
提供的內部函數以及各種工具箱,都是利用Matlab
語言開發的M文件。用戶也可以結合自己的工作需要,開發自己的程序或工具箱。
M文件根據調用方式的不同可以分為兩類:
Script:腳本文件/命令文件
Function:函數文件M文件
M
文件以.m
為擴展名。
M
文件是一個文本文件,可以用任何文本編輯器來建立和編輯,通常使用Matlab
自帶的M
文件編輯器。M文件的建立與打開新建一個M文件菜單操作(FileNewM-File
)命令操作
(edit
M文件名)命令按鈕
(
快捷鍵
)打開已有的M文件菜單操作
(FileOpen
)命令操作(edit
M文件名)命令按鈕
(
快捷鍵
)雙擊M
文件程序控制結構有三種:順序結構、選擇結構和循環結構。M文件控制流選擇結構是根據給定的條件成立或不成立,分別執行不同的語句。Matlab
用于實現選擇結構的語句有if
語句和switch
語句。關系運算<小于<=小于等于>大于>=大于等于==等于~=不等于比較大小,如果結論是真則返回1,否則返回0注意==與=
的區別關系操作符能用來比較兩個同樣大小的數組,或用來比較一個數組和一個標量,在后一種情況,標量和數組中的每一個元素相比較,比較結果與數組大小一樣。關系運算符&與(ElementwiseAND)|或(ElementwiseOR)~
非xor(x,y)
異或邏輯運算邏輯運算符A
&
B
等價于and(A,B)A
|
B
等價于or(A,B)
~
A
等價于not(A)例:A=input('PleaseinputA:')數據的輸入:inputA=input(提示信息)其中提示信息為字符串,該命令要求用戶輸入A
的值(可以是數或字符串)數據輸入inputA=input(提示信息,'s')注:此時輸入的字符串不要加單引號!如果是輸入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:disp(X)輸出變量X的值,可以是數值矩陣或字符串>>
B=[123;456;789];>>
disp(B)數據輸出disp數據的輸出:disp>>
A='Hello,Tom!';>>
disp(A)例:單分支結構ifexpression
(條件)
statements(語句組)endif條件語句ifexpression(條件)
statements1(語句組1)else
statements2(語句組2)end雙分支結構數據輸出fprintffprintf(fid,format,variables)按指定的格式將變量的值輸出到指定的文件數據的輸出:fprintf
fid
為文件句柄,若缺省,則將變量的值輸出到屏幕上
format
用來指定數據輸出時采用的格式,常見的有%e(采用科學計算形式)%f(采用浮點數形式)%g(由系統自動選取上述兩種格式之一)
%s(輸出字符串)
format
中還可以使用一些特殊格式,如:\n
(換行)\t
(制表符)\b
(退格)
\\
(反斜桿)
%%
(百分號)
數據輸出fprintffprintf('第%2d次迭代值為:%10.8f\n',n,x1)例:
format
中的輸出格式要與輸出變量一一對應function
[out1,out2,…]=函數名(in1,in2,…)%注釋說明部分(可選)函數體語句(必須)
第一行為引導行,表示該M文件是函數文件函數名的命名規則與變量名相同(必須以字母開頭
)當輸出行參多于一個時,用方括號括起來函數必須是一個單獨的M文件函數文件名必須與函數名一致以百分號開始的語句為注釋語句函數文件函數文件由function
語句引導函數文件舉例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;函數調用的一般格式輸出實參列表=函數名(輸入實參列表)函數調用子函數functionavg=fun(x)%主函數
n=length(x);avg=mean(x,n);functiona=mean(x,n)%子函數a=sum(x)/n;M文件的編輯與路徑設置進入MATLAB的Editor/Debugger窗口來編輯程序在編輯環境中,文字的不同顏色顯示表明文字的不同屬性。
綠色:注解;黑色:程序主體;紅色:屬性值的設定;藍色:控制流程。在運行程序之前,必須設置好MATLAB的工作路徑程序設計技術程序出錯主要為兩類:1)格式錯誤,如缺‘(’或‘)’等,在運行時可檢測出大多數該類錯誤,并指出錯在哪一行。2)算法錯誤,邏輯上的錯誤,不易查找,遇到此類錯誤時需耐心。程序控制結構有三種:順序結構、選擇結構和循環結構。任何復雜的程序都由這三種基本結構組成。
順序結構M文件控制流按排列順序依次執行各條語句,直到程序的最后。這是最簡單的一種程序結構,一般涉及數據的輸入輸出、數據的計算或處理等。選擇結構是根據給定的條件成立或不成立,分別執行不同的語句。Matlab
用于實現選擇結構的語句有if
語句和switch
語句。選擇結構ifexpression1(條件1)
statements1(語句組1)elseifexpression2(條件2)
statements2(語句組2)
......
elseifexpressionm(條件m)
statementsm(語句組m)else
statements(語句組)end多分支結構if條件語句if表達式1
語句體1elseif表達式2
語句體2
¦else
語句體nend
在執行for-end循環和while-end循環語句時,可以利用“if+break”語句中止循環運算。
當有多個條件時,若條件式1為假,則再判斷elseif的條件式2,如果所有條件式都不滿足,則執行else的語句體n,然后跳出if–else-end結構;當條件式為真則執行相應的語句體,否則跳過該語句體。
if–else-end結構也可以是沒有elseif和else的簡單結構,但if和end是不可省略且必須配對使用。編制M函數文件,實現不等長多項式的加法運算。forvariable=expression
statement(循環體)end循環變量循環結構whileexpression(條件)
statement(循環體)endfor循環【練習】一個三位整數各位數字的立方和等于該數本身則稱該數為水仙花數。輸出全部水仙花數。例:用循環求解>>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例:用循環求解求最小的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%向量化所需時間少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循環語句可以嵌套使用while循環whileexpression(條件)
statement(循環體)end不能在for循環體內改變循環變量的值為了提高代碼的運行效率,應盡可能提高代碼的向量化程度,避免
for循環的使用如果預先就知道循環的次數,則可以采用for循環;否則,如果預先無法確定循環的次數,則可以使用while循環。while循環舉例【例】Fibonacci數組的元素滿足Fibonacci規則:且。現要求該數組中第一個大于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
語句用于終止循環的執行,即跳出最內層循環
continue
語句用于結束本次循環,進行下一次循環
break
和continue
一般與if
語句配合使用其它流控制語句
return
return
語句用于退出正在運行的腳本或函數,通常用在函數文件中。continue語句【例】把100到120之間的能被7整除的整數輸出。fori=100:120
ifrem(i,7)~=0
continue
endiendbreak語句【例】輸出100到120之間第一個能被7整除的整數fori=100:120
ifrem(i,7)~=0
continue
endibreakend例:用循環求解求最大的m,
>>s=0;fori=1:10000s=s+i;ifs>10000,break;endend>>ii=141return語句functionoutput=fact(n)ifn==1output=1;return;endoutput=n*fact(n-1);根據表達式的不同取值,分別執行不同的語句。switchexpression(表達式)
casevalue1(表達式1)
statement1(語句組1)
casevalue2(表達式2)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住房人身安全合同范本
- 井下作業維護合同范本
- 物流月結合同協議書
- 弱電監理合同協議書范本
- 飯店訂餐合同協議書模板
- 合伙做養殖合同協議書
- 英文工程終止合同協議書
- 直播運營合同協議書范本
- 2025-2030中國金條市場運營模式與投資價值戰略規劃研究報告
- 2025-2030中國遠程醫療市場前景預測及發展趨勢預判研究報告
- GB/T 43449-2023法庭科學毒物分析實驗室質量控制規范
- 《用戶協議和隱私政策》
- 大隊委競選筆試試卷
- 英語閱讀教學【講座課件】
- 高中信息技術 必修1 算法及其描述PPT 課件
- 舟山外釣島光匯油庫儲運基地四期工程
- [甘肅]最新甘肅省造價文件匯編(310頁)
- 工業企業環境管理工作要點
- 臨床技術操作規范麻醉學分冊
- 高中物理實驗考點整合電學PPT課件
- 《愛蓮說》學案
評論
0/150
提交評論