MATLAB2M文件專業(yè)知識講座_第1頁
MATLAB2M文件專業(yè)知識講座_第2頁
MATLAB2M文件專業(yè)知識講座_第3頁
MATLAB2M文件專業(yè)知識講座_第4頁
MATLAB2M文件專業(yè)知識講座_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新MATLAB第二講天津農(nóng)學(xué)院數(shù)學(xué)建模1第1頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.1腳本文獻(M-文獻)對于簡單問題,使用直接輸入命令簡單有效;對稍復(fù)雜和數(shù)次反復(fù)應(yīng)用,直接輸入命令比較麻煩。MATLAB提供了邏輯處理方案,它允許顧客把多種命令放在一種簡單文本文獻中,猶如在MATLAB中鍵入命令一般,這種文獻稱為腳本文獻,由于腳本文獻以m為擴展名,它常稱為M文件。腳本文獻為文本形式,對跨平臺處理十分有利。使用腳本文獻,能夠把命令保存在磁盤上,便于后來訪問;同步對使用大數(shù)組也帶來方便;增加注釋能夠為腳本中命令作文擋以免后來忘掉。2第2頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.1.1matlab工作模式matlab工作模式有兩種:1.指令驅(qū)動模式一般matlab以指令驅(qū)動模式工作,即在matlab窗口下當顧客輸入單行指令時,matlab立即處理這條指令,并顯示成果,這就是matlab命令行方式。

命令行操作時,matlab窗口只允許一次執(zhí)行一行上一種或幾個語句。3第3頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新注:產(chǎn)生等距行向量辦法:冒號生成法這是通過“步長”設(shè)定,生成一維“行”數(shù)組辦法,通用格式:x=a:c:ba是數(shù)組第一種元素,c是間隔(假如c=1,則能夠缺省掉,見上一頁x1生成辦法),若(b-a)是c整數(shù)倍,則所生成數(shù)組最后一種元素等于b,不然介于a、b之間。4第4頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新例如:>>x1=0:10x1=012345678910>>x2=0:3:11x2=0369>>x3=11.5:-3:0x3=11.50008.50005.50002.50005第5頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新命令行方式程序可讀性差,并且不能存放,對于復(fù)雜問題,應(yīng)編寫成能存放程序文獻。2.m文獻模式將matlab語句組成程序存放成以m為擴展名文獻,然后再執(zhí)行該程序文獻,這種工作模式稱為程序文獻模式。程序文獻不能在指令窗口下建立,由于指令窗口只允許一次執(zhí)行一行上一種或幾個語句。6第6頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.1.2m文獻創(chuàng)建m文獻類型是一般文本文獻詳細創(chuàng)建辦法:在matlab命令窗口點擊file菜單

newm-file7第7頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新8第8頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新或者點擊9第9頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新10第10頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新m文獻分為兩類:非函數(shù)(腳本、命令)文獻函數(shù)文獻都用擴展名.m下面分別解說11第11頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.1.3非函數(shù)(腳本、命令)文獻

命令文獻事實上是一串指令集合,與在命令窗口逐行執(zhí)行文獻中所有指令,其成果是同樣。沒有輸入輸出參數(shù)。例如:畫出函數(shù)y=sinx圖像,x范圍[0,2π]matlab命令:x=0:2*pi/180:2*pi;%x為一種行向量,第一種元素為0,最后一種元素為2π,步長2π/180y=sin(x);%y也為一種向量,每個元素是x對應(yīng)元素正弦值plot(x,y)%畫圖,x中元素為橫坐標,y中對應(yīng)元素為縱坐標%因此在本例中畫是y=sinx圖像,自變量取值[0,2π]12第12頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新1.創(chuàng)建m文獻這三行命令能夠在commandwindow中輸入并且執(zhí)行,不過假如想保存起來,方便下次使用,需要編輯成m文獻13第13頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.保存m文獻:FileSaveAs14第14頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新把這個m文獻命名為graph_sin.m寄存在c:\matlab7\work中有關(guān)保存途徑:一般默認在安裝途徑matlab7\work,也能夠保存在自己需要途徑m文獻保存命名規(guī)則:1.文獻名不要取為matlab一種固有函數(shù),m文獻名命名盡可能不要是簡單英文單詞,最佳是由大小寫英文/數(shù)字/下劃線等組成。原因是簡單單詞命名容易與matlab內(nèi)部函數(shù)名同名,成果會出現(xiàn)某些莫名其妙錯誤。2.名字不能僅有數(shù)字15第15頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新3.運行非函數(shù)(命令、腳本)m文獻1)設(shè)置途徑注:假如想運行一種m文獻,必須確保matlab能夠找到這個m文獻matlab搜索文獻或變量名次序工作空間中內(nèi)部函數(shù)所在目錄中目前目錄中設(shè)定搜索途徑中因此為了讓matlab能夠找到這個m文獻有兩種辦法:16第16頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新(1)把這個m文獻所在途徑設(shè)為目前目錄17第17頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新(2)把這個m文獻所在途徑添加到matlab搜索途徑中File→SetPath選擇AddFolder找到m文獻所在文獻夾,確定,然后Save18第18頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2).運行非函數(shù)(命令、腳本)m文獻兩種辦法:1)在這個m文獻編輯窗口Debug→run19第19頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新20第20頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新注:運行完成,大家注意workspace(工作空間)中變量變化,能夠看到workspace里出現(xiàn)了變量x,y21第21頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2)在CommandWindow窗口輸入這個非函數(shù)m文獻名稱graph_sin,然后回車22第22頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新4.m文獻編輯edit——

用matlab自帶編輯器編制m文獻。例如:editmyfile%編輯myfile.m或者Fileopen23第23頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新24第24頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新25第25頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.1.4函數(shù)m文獻一.函數(shù)m文獻格式及調(diào)用格式:function[輸出表]=函數(shù)名(輸入表)

函數(shù)體注:1.其中:[輸出表]是函數(shù)返回值,若輸出表中只有一項,則方括號可省略。2.保存時候函數(shù)名必須與定義它文獻名主名相同26第26頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新Example:已知,求27第27頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新處理步驟:1.打開一種新m文獻28第28頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新29第29頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2.按照函數(shù)m文獻格式輸入函數(shù)30第30頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新3.保存,途徑能夠自己選擇,默認目前目錄注意保存名字一定與函數(shù)名相同31第31頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新32第32頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新33第33頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新4.運行:(1)設(shè)置途徑,與非函數(shù)m文獻相同(2)調(diào)用:在commandwindow中輸入:clearf1=myfun(1);f2=myfun(2);f3=myfun(3);f4=myfun(4);f1+f2*f3+f4^2注意:workspace里面并沒有出現(xiàn)y34第34頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新成果:注意:程序中變量x,y均為局部變量,不保存在工作空間中。其變量只在函數(shù)運行期間有效。35第35頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新上一種例子是只有一種輸入和輸出參數(shù)情況還能夠有多種輸入?yún)?shù)和輸出參數(shù),在自編函數(shù)m文獻中能夠調(diào)用matlab中已有函數(shù),也能夠調(diào)用自己編函數(shù),一種函數(shù)能夠嵌套,甚至調(diào)用自己(也就是遞歸調(diào)用)。36第36頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新例如:請編一種函數(shù)m文獻:avg.m,用于求n維向量x各個元素平均值,函數(shù)頭為:functionmean=avg(x,n)輸出參數(shù)mean表達n維向量x各個元素平均值解:打開一種新m文獻輸入:functionmean=avg(x,n)%x是向量,n是它維數(shù)

mean=sum(x)/n;%返回值是x所有元素平均值37第37頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新sum(x)表達對向量x各個元素求和38第38頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新下面利用avg.m求向量x=[1,2,4,8,9,-1.1]各個元素平均值clearx=[1,2,4,8,9,-1.1];%輸入xy=avg(x,6)%求6維向量x平均值y注意:調(diào)用avg.m前,應(yīng)先給x、n賦值39第39頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新40第40頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新例:請編一種函數(shù)m文獻x_data.m,格式:[xmean,xsum,xmax,xmin]=x_data(x,n)其中x是n維向量,xmean為x各元素平均值,xsum為x各元素之和,xmax為x最大元素,xmin為x最小元素。并用這個函數(shù)求x=[1,2,4,8,9,-1.1]平均值、各元素之和、最大元素、最小元素。41第41頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新42第42頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新43第43頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新用到了幾個函數(shù)avg——自編函數(shù),用于求平均值sum——

求向量各元素和max——求向量最大元素min——求向量最小元素44第44頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新二、總結(jié)函數(shù)把一種比較大任務(wù)分解為多種比較小任務(wù),它們之間通過調(diào)用實現(xiàn)參數(shù)傳遞,小任務(wù)能夠是函數(shù)。1函數(shù)調(diào)用常見函數(shù)調(diào)用形式為:[out1,out2,…]=functionname(in1,in2,…)一種函數(shù)能夠嵌套,也能夠調(diào)用其他函數(shù),甚至調(diào)用自己(也就是遞歸調(diào)用)。函數(shù)文獻,函數(shù)名稱和文獻名必須相同。需要注意函數(shù)文獻放置位置,一般自己函數(shù)文獻放在目前目錄;假如對一種專項有了足夠多函數(shù),能夠生成一種工具箱,放在一種固定目錄下,并在MATLAB中加入這個目錄途徑即可。45第45頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新2參數(shù)傳遞在MATLAB中,參數(shù)具有自己專有工作空間。函數(shù)中參數(shù)和命令行參數(shù)不在一種空間中,它們唯一聯(lián)系為函數(shù)輸入輸出變量。輸入?yún)?shù)在函數(shù)中是可讀,但在函數(shù)中任何改動不會傳遞回上一級空間。使用global命令能夠?qū)⒆兞空f明為全局,則在函數(shù)、命令行等都能夠共享這些變量。在實際應(yīng)用中,應(yīng)當盡可能避免使用全局變量。46第46頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新3函數(shù)注意函數(shù)有它們自己專用工作空間,它與MATLAB工作空間分開。函數(shù)內(nèi)變量與MATLAB工作空間之間唯一聯(lián)系是函數(shù)輸入和輸出變量。假如函數(shù)任一輸入變量值發(fā)生變化,其變化僅在函數(shù)內(nèi)出現(xiàn),不影響MATLAB工作空間變量。函數(shù)內(nèi)所創(chuàng)建變量只駐留在函數(shù)工作空間,并且只在函數(shù)執(zhí)行期間臨時存在,后來就消失。因此,從一種調(diào)用到下一種調(diào)用,在函數(shù)工作空間變量存放信息是不也許。47第47頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新假如變量說明是全局,函數(shù)能夠與其他函數(shù)、MATLAB工作空間和遞歸調(diào)用本身共享變量。為了在函數(shù)內(nèi)或MATLAB工作空間中訪問全局變量,在每一種所希望工作空間,變量必須說明是全局。實際編程中,無論什么時候應(yīng)盡可能避免使用全局變量。48第48頁2023/10/10天津農(nóng)學(xué)院基礎(chǔ)科學(xué)系朱文新從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論