matlab指導教程_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第四講 matlab的程序設計,—— matlab語言稱為第四代編程語言,程序簡潔、可讀性很強而且調試十分容易。 是matlab重要組成部分。,m文件簡介,用戶如想靈活應用matlab去解決實際問題,充分調用matlab的科學技術資源,就需要編輯m文件包含matlab語言代碼的文件稱為m文件,其擴展名為m。編輯m文件可使用各種文本編輯器。,一、matlab的工作模式,指令驅動模式 ? 通常matlab以指令驅動模式工

2、作,即在matlab 窗口下當用戶輸入單行指令時,matlab 立即處理這條指令,并顯示結果,這就是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窗口輸入數據和命令進行計算時,當處理復雜問題和大量數據時是不方便的。因此應編輯m文件。,命令行方式程序可讀性差,而且不能存儲,對于復雜的問題,應編寫成能存儲的程序文件。m文件模式將matlab語句構成的程序存儲成以m為擴展名的文件,然后再執(zhí)行該程序文件,這種工作模式稱為程序文件模式。程序文件不能在指令窗口下建立,因為指令窗口只允許一次執(zhí)行一行上的一個或幾個語句。,二

5、、m文件的創(chuàng)建,m文件的類型是普通的文本文件,我們可以使用系統認可的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文件的類型,數據文件 .mat mat文件是matlab以標準二進制格式保存的數據文件,可將工作空間中有用的數據變

7、量保存下來。 mat文件的生成和調用是由函數save和load完成的。例如:load gatlin image(X),colormap(gray);axis equal; axis('off'),2. m文件 m文件的語法類似于c語言,但又有其自身特點。它只是一個簡單的ASCII碼文本文件,執(zhí)行程序時逐行解釋運行程序,matlab是解釋性的編程語言。 m文件有兩類?獨立的m文件

8、 — 稱命令文件 ?可調用m文件 — 稱函數文件(1). 命令文件 — 簡單的m文件 命令文件實際上是一串指令的集合,與在命令窗口逐行執(zhí)行文件中的所有指令,其結果是一樣的。沒有輸入輸出參數。,(2).matlab內置函數文件 matlab自定義的函數文件稱內置函數文件 調用內置函數的方法:使用函數名并給出相應的入口、出口參數即可。 例如:sin.m函

9、數——用type sin查不到。 調用格式: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、的內置數學函數,供我們在數值運算和符號運算中調用。,(3). 函數m文件— 需要輸入變量,返回輸出變量 matlab用戶可以根據需要編輯自己的m文件,它們可以像庫函數一樣方便的調用,從而極大地擴展了matlab 的能力。 對于某一類特殊問題,如創(chuàng)建了許多m函數文件,則可形成新的工具箱。這種用matlab語言創(chuàng)建定義新的matlab函數的功能,正體現了matlab語言強大的擴展功能。,函數m文件的一般結構:Matlab 的函數文件

11、通常有五部分組成函數定義行(function declaration line)H1行(the first help text line)在線函數幫助文件(help text)注釋函數體(function body) 特定規(guī)則:函數m文件第一行必須以單詞function作為引導詞,必須遵循如下形式: function =(),H1 行指定義行之后以“%”開頭的第一注釋行該行提供lookfor關鍵

12、詞和help 和在線幫助H1行及其之后的連續(xù)以“%”開頭的所有注釋行構成整個在線幫助文本在函數體中可添加對語句的注釋,注釋語句用“%”開頭函數體可以有流程控制、輸入輸出、計算、賦值和注釋,可包括對函數和命令文件調用,例如 rank函數%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。程序中的變量均為局部變量,不保存在工作空間中。 其變量只在函數運行期間有效。函數內變量與matlab工作空間之間聯系是函數的輸入、輸出函數參數的傳遞可以多輸入、多輸出函數可以遞歸調用,說明:在組成M函數文件的幾個部分中,定義行是必需

15、 的,其他各部分的內容可以沒有,特別注意,四、matlab的程序結構,matlab語言的程序結構與其它高級語言是一致的,分為順序結構,循環(huán)結構,分支結構。(1).順序結構 —— 依次順序執(zhí)行程序的各條語句(2).循環(huán)結構 —— 被重復執(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í)行不定次數。

17、 語法為:while 表達式 循環(huán)體語句 end 表達式一般是由邏輯運算和關系運算以及一般運算組成的,以判斷循環(huán)的進行和停止;只要表達式的值 非0,繼續(xù)循環(huán);直到表達式值為0,循環(huán)停止。,例:用while循環(huán)求1~100間整數的和 sum=0; i=1; while i<=100

18、 sum=sum+i; i=i+1; end sum sum = 5050,(3). 分支結構——根據一定條件來執(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,這種結構實現了一種多路選擇,比較復雜??商娲话愀呒壵Z言中的switch-case-end語句,在條件表達式中,通常都是由 關系操作符 >, =, = =, ~= 等 邏輯操作符 &,| , ~等 邏輯函數:isequal ——

21、 若是相等則為真 isempty ——若是空矩陣則為真 isstr —— 若是字符串則為真例:編寫m函數,繪出函數 -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 — 關閉所有命令文件的顯示方式 echo — 在以上兩者間切換,input —— 提示用戶從鍵盤輸入數值、字符串、表達式。 例:n=input('How many apples= ')How many apples= 5n = 5pause —— 暫停,等待用戶響應 可令m文件執(zhí)行暫停,并在繼續(xù)執(zhí)

24、行前按任一個鍵 。pause(n)在繼續(xù)執(zhí)行前,暫停n秒,keyboard —— 與input類似,功能更強 keyboard 調用鍵盤與調用m文件一樣,當keyboard在m文件中出現時,它停止文件的執(zhí)行并控制鍵盤,用于修改程序。break —— 中斷 break 中斷for、while、if 語句中止循環(huán)。在嵌套循環(huán)結構中, break從最里層循環(huán)退回上層。return —— 在被調函數中插入

25、return指令,可強制matlab結束執(zhí)行該函數并把控制轉出。,六、文件操作,matlab文件輸入、輸出(I/O)函數允許把其它格式的數據文件直接讀進matlab,它是以c語言文件I/O函數為基礎的。打開和關閉文件(fopen, fclose) 格式:fid=fopen(‘數據文件’,‘r’) ‘r’ —— 讀 ‘w’ —— 寫

26、 ‘a’ —— 附加 ‘rt’ —— 讀寫,文件一旦打開,即可進行讀寫操作。 sta=fclose(fid) —— 關閉上述打開文件 sta=fclose(all) —— 關閉所有打開的文件與save,load類似,是matlab專用數據文件讀寫工具(*.mat)。2. 讀寫二進制數據文件 fread, fwrite —— 可讀寫數據文件,文本文件。例:fid=f

27、open(‘user.dat’,’r’) a=fread(fid,50) sta=fclose(fid),七、應用程序接口,應用程序接口——是matlaab的附加組件。是一個由相關函數組成的接口函數庫,可實現與外部程序的交互。MEX文件:是matlab環(huán)境下調用C、FORTRAN 語言編寫的應用程序模塊。matlab 計算引擎:在使用C、FORTRA

28、N編程時 可調用matlab函數庫進行計算。MAT文件:實現matlab與C、FORTRAN語言程序間的 數據交換,八、matlab編譯,matlab編譯的原因:1. 提高運算速度2. 隱藏特定算法3. 可產生獨立的m文件matlab編譯函數:mccMCC [-options] fun [fun2 ...] [m

溫馨提示

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

評論

0/150

提交評論