版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第四講 matlab的程序設計,—— matlab語言稱為第四代編程語言,程序簡潔、可讀性很強而且調(diào)試十分容易。 是matlab重要組成部分。,m文件簡介,用戶如想靈活應用matlab去解決實際問題,充分調(diào)用matlab的科學技術(shù)資源,就需要編輯m文件包含matlab語言代碼的文件稱為m文件,其擴展名為m。編輯m文件可使用各種文本編輯器。,一、matlab的工作模式,指令驅(qū)動模式 ? 通常matlab以指令驅(qū)動模式工
2、作,即在matlab 窗口下當用戶輸入單行指令時,matlab 立即處理這條指令,并顯示結(jié)果,這就是matlab命令行方式。 ? 命令行操作時,matlab窗口只允許一次執(zhí)行一行上的一個或幾個語句。,例如:x1=0:10x1 = 0 1 2 3 4 5 6 7 8 9 10x2=0:3:11x2 = 0 3
3、6 9x3=11.5:-3:0x3 = 11.5000 8.5000 5.5000 2.5000,x1=0:10,x2=0:3:11,x3=11.5:-3:0x1 = 0 1 2 3 4 5 6 7 8 9 10x2 = 0 3 6 9x3 = 11.5000 8
4、.5000 5.5000 2.5000在matlab窗口輸入數(shù)據(jù)和命令進行計算時,當處理復雜問題和大量數(shù)據(jù)時是不方便的。因此應編輯m文件。,命令行方式程序可讀性差,而且不能存儲,對于復雜的問題,應編寫成能存儲的程序文件。m文件模式將matlab語句構(gòu)成的程序存儲成以m為擴展名的文件,然后再執(zhí)行該程序文件,這種工作模式稱為程序文件模式。程序文件不能在指令窗口下建立,因為指令窗口只允許一次執(zhí)行一行上的一個或幾個語句。,二
5、、m文件的創(chuàng)建,m文件的類型是普通的文本文件,我們可以使用系統(tǒng)認可的m文件編輯器來建立m文件。具體的創(chuàng)建方法:在matlab命令窗口下點擊file 菜單 new ? M-file,或點擊圖標,也可點擊圖標打開 已有的M文件,m文件編輯器缺省設置是 D:\MATLAB6p1\work,注意:所創(chuàng)建的m文件必須納入matlab搜索路 徑后,才能在matla
6、b命令窗口運行。,matlab搜索路徑的設置 matlab 缺省路徑是D:\MATLAB6p1\work 1. cd d:\myfile 2. path(path,‘d:\myfile') 3. 用set path 設定當前目錄。,三、matlab文件的類型,數(shù)據(jù)文件 .mat mat文件是matlab以標準二進制格式保存的數(shù)據(jù)文件,可將工作空間中有用的數(shù)據(jù)變
7、量保存下來。 mat文件的生成和調(diào)用是由函數(shù)save和load完成的。例如:load gatlin image(X),colormap(gray);axis equal; axis('off'),2. m文件 m文件的語法類似于c語言,但又有其自身特點。它只是一個簡單的ASCII碼文本文件,執(zhí)行程序時逐行解釋運行程序,matlab是解釋性的編程語言。 m文件有兩類?獨立的m文件
8、 — 稱命令文件 ?可調(diào)用m文件 — 稱函數(shù)文件(1). 命令文件 — 簡單的m文件 命令文件實際上是一串指令的集合,與在命令窗口逐行執(zhí)行文件中的所有指令,其結(jié)果是一樣的。沒有輸入輸出參數(shù)。,(2).matlab內(nèi)置函數(shù)文件 matlab自定義的函數(shù)文件稱內(nèi)置函數(shù)文件 調(diào)用內(nèi)置函數(shù)的方法:使用函數(shù)名并給出相應的入口、出口參數(shù)即可。 例如:sin.m函
9、數(shù)——用type sin查不到。 調(diào)用格式:y=sin(2*x) 實際應用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y),又如 sqrt(x) —— 求x的平方根 abs(x)—— 求x的絕對值 det(a)—— 求行列式的值 eig(A) —— 求矩陣A的特征值 等等。matlab擁有大量
10、的內(nèi)置數(shù)學函數(shù),供我們在數(shù)值運算和符號運算中調(diào)用。,(3). 函數(shù)m文件— 需要輸入變量,返回輸出變量 matlab用戶可以根據(jù)需要編輯自己的m文件,它們可以像庫函數(shù)一樣方便的調(diào)用,從而極大地擴展了matlab 的能力。 對于某一類特殊問題,如創(chuàng)建了許多m函數(shù)文件,則可形成新的工具箱。這種用matlab語言創(chuàng)建定義新的matlab函數(shù)的功能,正體現(xiàn)了matlab語言強大的擴展功能。,函數(shù)m文件的一般結(jié)構(gòu):Matlab 的函數(shù)文件
11、通常有五部分組成函數(shù)定義行(function declaration line)H1行(the first help text line)在線函數(shù)幫助文件(help text)注釋函數(shù)體(function body) 特定規(guī)則:函數(shù)m文件第一行必須以單詞function作為引導詞,必須遵循如下形式: function =(),H1 行指定義行之后以“%”開頭的第一注釋行該行提供lookfor關(guān)鍵
12、詞和help 和在線幫助H1行及其之后的連續(xù)以“%”開頭的所有注釋行構(gòu)成整個在線幫助文本在函數(shù)體中可添加對語句的注釋,注釋語句用“%”開頭函數(shù)體可以有流程控制、輸入輸出、計算、賦值和注釋,可包括對函數(shù)和命令文件調(diào)用,例如 rank函數(shù)%RANKNumber of linearly independent rows or columns.%K = RANK(X) is the number of singular value
13、s of X%that are larger than MAX(SIZE(X)) * NORM(X) * EPS.%K = RANK(X,tol) is the number of singular values of X that%are larger than tol.%Copyright (c) 1984-94 by The MathWorks, Inc.s = svd(x);if (nargin == 1
14、) tol = max(size(x)) * max(s) * eps;endr = sum(s > tol);,,程序部分,1. m文件的文件名必須是 .m。程序中的變量均為局部變量,不保存在工作空間中。 其變量只在函數(shù)運行期間有效。函數(shù)內(nèi)變量與matlab工作空間之間聯(lián)系是函數(shù)的輸入、輸出函數(shù)參數(shù)的傳遞可以多輸入、多輸出函數(shù)可以遞歸調(diào)用,說明:在組成M函數(shù)文件的幾個部分中,定義行是必需
15、 的,其他各部分的內(nèi)容可以沒有,特別注意,四、matlab的程序結(jié)構(gòu),matlab語言的程序結(jié)構(gòu)與其它高級語言是一致的,分為順序結(jié)構(gòu),循環(huán)結(jié)構(gòu),分支結(jié)構(gòu)。(1).順序結(jié)構(gòu) —— 依次順序執(zhí)行程序的各條語句(2).循環(huán)結(jié)構(gòu) —— 被重復執(zhí)行的一組語句,循環(huán)是計算機解決問題的主要手段。 循環(huán)語句主要有:? for — end,語法為: for i = 表達式 (表達式為一個向量)
16、 可執(zhí)行語句 end例:利用for循環(huán)求1!+2!+3!+ ??? +5!的值 sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; end,sum = 153,? while — end 循環(huán) while循環(huán)將循環(huán)體中的語句循環(huán)執(zhí)行不定次數(shù)。
17、 語法為:while 表達式 循環(huán)體語句 end 表達式一般是由邏輯運算和關(guān)系運算以及一般運算組成的,以判斷循環(huán)的進行和停止;只要表達式的值 非0,繼續(xù)循環(huán);直到表達式值為0,循環(huán)停止。,例:用while循環(huán)求1~100間整數(shù)的和 sum=0; i=1; while i<=100
18、 sum=sum+i; i=i+1; end sum sum = 5050,(3). 分支結(jié)構(gòu)——根據(jù)一定條件來執(zhí)行的各條語 句。 if — else — end語句有3種形式 ? if 表達式 執(zhí)行語句 end ? if 表達式 ——— 是
19、 語句1 else ———— 否 語句2 end,? if 表達式1 ——— 多分支 語句1 elseif 表達式2 語句2 elseif 表達式3 語句3 · ·
20、 · else 語句n end,這種結(jié)構(gòu)實現(xiàn)了一種多路選擇,比較復雜。可替代一般高級語言中的switch-case-end語句,在條件表達式中,通常都是由 關(guān)系操作符 >, =, = =, ~= 等 邏輯操作符 &,| , ~等 邏輯函數(shù):isequal ——
21、 若是相等則為真 isempty ——若是空矩陣則為真 isstr —— 若是字符串則為真例:編寫m函數(shù),繪出函數(shù) -x3 (x=1),,程序為:x=-3:0.1:3;if x>=1 y=2*x.^2+1; plot(x,y) elseif –1<x<1
22、 y=5; plot(x,y) else y=-x.^3; plot(x,y)end,五、matlab程序流的控制,matlab的控制語句同c語言有相似之處, 但沒有c 語言復雜、靈活和多變。因而語法比較簡單,容易掌握。echo 指令— 用來控制m文件在執(zhí)行過程中是否
23、 顯示 echo on — 打開所有命令文件的顯示方式 echo off — 關(guān)閉所有命令文件的顯示方式 echo — 在以上兩者間切換,input —— 提示用戶從鍵盤輸入數(shù)值、字符串、表達式。 例:n=input('How many apples= ')How many apples= 5n = 5pause —— 暫停,等待用戶響應 可令m文件執(zhí)行暫停,并在繼續(xù)執(zhí)
24、行前按任一個鍵 。pause(n)在繼續(xù)執(zhí)行前,暫停n秒,keyboard —— 與input類似,功能更強 keyboard 調(diào)用鍵盤與調(diào)用m文件一樣,當keyboard在m文件中出現(xiàn)時,它停止文件的執(zhí)行并控制鍵盤,用于修改程序。break —— 中斷 break 中斷for、while、if 語句中止循環(huán)。在嵌套循環(huán)結(jié)構(gòu)中, break從最里層循環(huán)退回上層。return —— 在被調(diào)函數(shù)中插入
25、return指令,可強制matlab結(jié)束執(zhí)行該函數(shù)并把控制轉(zhuǎn)出。,六、文件操作,matlab文件輸入、輸出(I/O)函數(shù)允許把其它格式的數(shù)據(jù)文件直接讀進matlab,它是以c語言文件I/O函數(shù)為基礎的。打開和關(guān)閉文件(fopen, fclose) 格式:fid=fopen(‘數(shù)據(jù)文件’,‘r’) ‘r’ —— 讀 ‘w’ —— 寫
26、 ‘a(chǎn)’ —— 附加 ‘rt’ —— 讀寫,文件一旦打開,即可進行讀寫操作。 sta=fclose(fid) —— 關(guān)閉上述打開文件 sta=fclose(all) —— 關(guān)閉所有打開的文件與save,load類似,是matlab專用數(shù)據(jù)文件讀寫工具(*.mat)。2. 讀寫二進制數(shù)據(jù)文件 fread, fwrite —— 可讀寫數(shù)據(jù)文件,文本文件。例:fid=f
27、open(‘user.dat’,’r’) a=fread(fid,50) sta=fclose(fid),七、應用程序接口,應用程序接口——是matlaab的附加組件。是一個由相關(guān)函數(shù)組成的接口函數(shù)庫,可實現(xiàn)與外部程序的交互。MEX文件:是matlab環(huán)境下調(diào)用C、FORTRAN 語言編寫的應用程序模塊。matlab 計算引擎:在使用C、FORTRA
28、N編程時 可調(diào)用matlab函數(shù)庫進行計算。MAT文件:實現(xiàn)matlab與C、FORTRAN語言程序間的 數(shù)據(jù)交換,八、matlab編譯,matlab編譯的原因:1. 提高運算速度2. 隱藏特定算法3. 可產(chǎn)生獨立的m文件matlab編譯函數(shù):mccMCC [-options] fun [fun2 ...] [m
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab學習指導教程
- matlab教程
- matlab教程
- matlab入門教程
- matlab基本操作教程
- matlab 簡明實例教程
- matlab矩陣分析與處理matlab全課件教程
- matlab經(jīng)典數(shù)學建模教程
- matlab2014b安裝教程
- matlab入門教程ppt課件
- matlab-gui初學者教程
- matlab經(jīng)典教程——從入門到精通
- gui指導教程系列
- matlab基礎教程薛山課后答案
- 品牌招商指導教程
- 英語發(fā)音指導教程
- 北航matlab教程(r2011a)習題4解答
- matlab基礎教程薛山后習題答案講解
- 網(wǎng)店后臺操作指導教程
- 《生理學》實驗指導教程
評論
0/150
提交評論