《Matlab程序設計》PPT課件

上傳人:san****019 文檔編號:20300476 上傳時間:2021-03-05 格式:PPT 頁數(shù):56 大?。?85.31KB
收藏 版權申訴 舉報 下載
《Matlab程序設計》PPT課件_第1頁
第1頁 / 共56頁
《Matlab程序設計》PPT課件_第2頁
第2頁 / 共56頁
《Matlab程序設計》PPT課件_第3頁
第3頁 / 共56頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《Matlab程序設計》PPT課件》由會員分享,可在線閱讀,更多相關《《Matlab程序設計》PPT課件(56頁珍藏版)》請在裝配圖網上搜索。

1、第七節(jié) Matlab的程序設計 Matlab語言稱為第四 代編程語言,程序簡潔、可 讀性很強而且調試十分容易 , 是 Matlab的重要組成部分。 m文件簡介 用戶如想靈活應用 Matlab去解決實際問題, 充分調用 Matlab的科學技術資源,就需要編 輯 m文件。 包含 Matlab語言代碼的文件稱為 m文件,其 擴展名為 m。 編輯 m文件可使用各種文本編輯器。 一、 Matlab的工作模式 指令驅動模式 通常 Matlab以指令驅動模式工作,即在 Matlab 窗口下當用戶輸入單行指令時, Matlab 立即處理 這條指令,并顯示結果,這就是 Matlab命令行方 式。 命令行操作時,

2、 Matlab窗口只允許一次執(zhí)行一 行上的一個或幾個語句。 例如: x1=0:10 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2=0:3:11 x2 = 0 3 6 9 x3=11.5:-3:0 x3 = 11.5000 8.5000 5.5000 2.5000 x1=0:10,x2=0:3:11,x3=11.5:-3:0 x1 = 0 1 2 3 4 5 6 7 8 9 10 x2 = 0 3 6 9 x3 = 11.5000 8.5000 5.5000 2.5000 在 Matlab窗口輸入數(shù)據(jù)和命令進行計算時, 當處理復雜問題和大量數(shù)據(jù)時是不方便的。 因此應編輯 m文件。

3、 命令行方式程序可讀性差,而且不能存儲, 對于復雜的問題,應編寫成能存儲的程序文 件。 m文件模式 將 Matlab語句構成的程序存儲成以 m為擴展名 的文件,然后再執(zhí)行該程序文件,這種工作 模式稱為程序文件模式。 程序文件不能在指令窗口下建立,因為指令 窗口只允許一次執(zhí)行一行上的一個或幾個語 句。 二、 m文件的創(chuàng)建 m文件的類型是普通的文本文件,我們可以 使用系統(tǒng)認可的文本文件編輯器來建立 m文件。 具體的創(chuàng)建方法: 1. 在 Matlab命令窗 口點擊 file 菜單 new m-file 2. 點擊 file Save File As 將編輯器中的內容存 入文件 *.m。 3. 編輯器

4、 用系統(tǒng)自帶的記事本或者 word可 以打開編輯 m文件,也可以使用專業(yè)的編輯工 具,例如: UltraEdit。當然更好的選擇是用 matlab自帶的編輯器編寫 m文件。 注意:所創(chuàng)建的 m文件必須納入 Matlab搜索路 徑后,才能在 Matlab命令窗口運行。 Matlab搜索路徑的設置 1. path(path,c:toolsgoodstuff) 2.用 pathtool路徑瀏覽器設定當前目錄。 可以在命令行輸入 pathtool, 也可以在 file set path中加入文件夾或文件。 三、 Matlab文件的類型 1. 數(shù)據(jù)文件 .mat mat文件是 Matlab以標準二進制格

5、式保存的 數(shù)據(jù)文件,可將工作空間中有用的數(shù)據(jù)變量 保存下來。 mat文件的生成和調用是由函數(shù) save和 load 完成的。 例如: load gatlin image(X) colormap(gray);axis equal;axis(off) 100 200 300 400 500 600 50 100 150 200 250 300 350 400 450 2. m文件 m文件的語法類似于 c語言,但又有其自身特 點,后綴為 m。它只是一個簡單的 ASCII碼文 本文件,執(zhí)行程序時逐行解釋運行程序, Matlab是解釋性的編程語言。 m文件有兩類: 獨立的 m文件 稱命令文件 (腳本 s

6、cript) 可調用 m文件 稱函數(shù)文件 (function) (1) 命令文件 簡單的 m文件 命令文件實際上是一串指令的集合,與在命令 窗口逐行執(zhí)行文件中的所有指令,其結果是一 樣的。 命令文件的特點: 命令文件沒有輸入輸出參數(shù)。 命令文件運行中可以調用工作空間的數(shù)據(jù),運 行中產生的所有變量為全局變量。 命令文件可以直接運行。 命令文件包括兩部分:注釋文件和程序文件 %RANK Number of linearly independent rows or columns. % K = RANK(X) is the number of singular values of X % that

7、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) tol = max(size(x) * max(s) * eps; end r = sum(s tol); 程序部分 如何有效加注釋 % 最常用的操作,但是效率慢。如果是對大段 的代碼進行注釋

8、,可使用下面三種方法: 選中大段代碼 ,鼠標右鍵 comment ,如果要取 消大段代碼的注釋,同樣鼠標右鍵 uncomment 快捷鍵:加注釋是選中代碼按 Ctrl+r,取消注釋 是選中代碼按 Ctrl+t。 if(0) 大段的代碼 end (2) Matlab內置函數(shù)文件 Matlab自定義的函數(shù)文件稱內置函數(shù)文件 調用內置函數(shù)的方法: 使用函數(shù)名并給出相 應的入口、出口參數(shù)即可。 例如: sin.m函數(shù) 用 type sin查不到。 返回為: sin is a built-in function. 實際應用中可以直接調用 x=0:2*pi/180:2*pi; y=sin(2*x) plo

9、t(x,y) 又如 sqrt(x) 求 x的平方根 abs(x) 求 x的絕對值 det(a) 求行列式的值 等等。 Matlab擁有大量的內置數(shù)學函數(shù),供我們在數(shù) 值運算和符號運算中調用。 (3)函數(shù) m文件 需要輸入變量,返回輸出變量 Matlab用戶可以根據(jù)需要編輯自己的 m文件,它們可 以像庫函數(shù)一樣方便的調用,從而極大地擴展了 Matlab 的能力。 對于某一類特殊問題,如創(chuàng)建了許多 m函數(shù)文件, 則可形成新的工具箱。 這種用 Matlab語言創(chuàng)建定義新的 Matlab函數(shù)的功 能,正體現(xiàn)了 Matlab語言強大的擴展功能。 函數(shù) m文件的格式: (1)函數(shù)定義行: function

10、 返回變量、參數(shù) =函數(shù)名 (輸入變量、參數(shù) ) (2) 函數(shù)說明,就是函數(shù)注釋。 (3) 函數(shù)體:程序語句段,完成函數(shù)的功能。 特定規(guī)則: 1. 函數(shù) m文件第一行必須以單詞 function作為引 導詞,必須遵循如下形式: function 因變量 =函數(shù)名 (自變量 ) 2. m文件的文件名必須是 .m。 3. 程序中的變量均為局部變量,不保存在工作 空間中,也不能調用工作空間的數(shù)據(jù),其變 量只在函數(shù)運行期間有效。 4. 不能直接運行,只能調用。因為系統(tǒng)無法確 定輸入變量。 5. 只能在當前目錄運行。 (4) 系統(tǒng)文件 s函數(shù) 用于描述系統(tǒng)運動的專用函數(shù),是特殊的 m 文件。 s 函數(shù)有

11、 3類: 由 simulink結構圖自動創(chuàng)建 可用 c語言程序設計 mex文件直 接定義 用函數(shù) m文件編寫 s函數(shù)一旦創(chuàng)建,即可在框圖中使用,也可在 文件中調用。 S函數(shù)的調用格式 sys, x0=sfunction( t, x, u, flag) S函數(shù)與函數(shù) m文件類似,只是輸入、輸出 變量是限定的。 系統(tǒng)狀態(tài) 狀態(tài)初值 用戶定義的系統(tǒng) 當前時刻 當前狀態(tài)值 當前輸入值 標志量 matlab的函數(shù)類型 simple 未加載的內部函數(shù)、 m文件 overloaded 加載的內部函數(shù)、 m文件 subfunction 子函數(shù) constructor matlab類的創(chuàng)建函數(shù) private

12、局部函數(shù) Matlab自動備份文件 Matlab的程序文件中除了后綴是 m, mat外,還 有 asv。它沒有任何作用,只是像 Word一樣備 份文件,可以刪除。 也可以設置不備份文件,方法是: 在 file/Preferences里面在“ Editor/Debugger”菜 單里面找到 Autosave,把勾選去掉。 四、 matlab的程序結構 matlab語言的程序結構與其它高級語言是一致 的,分為順序結構,循環(huán)結構,分支結構。 (1).順序結構 依次順序執(zhí)行程序的各條語句 (2).循環(huán)結構 被重復執(zhí)行的一組語句,循環(huán) 是計算機解決問題的主要手段。 循環(huán)語句主要有: for end (硬

13、循環(huán)語句或無條件循環(huán) ) 語法為: for i = 表達式 (表達式為一個向量) 可執(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ù)。 語法為: while 表達式 循環(huán)體語句 end 表達式一般是由邏輯運算和關系運算以及一 般運算組成的,以判斷循環(huán)的進行和停止; 只要表達式的值 非 0,繼續(xù)循環(huán);直到表達式 值為 0,循環(huán)停

14、止。 例:用 while循環(huán)求 1100間整數(shù)的和 sum=0; i=1; while i, ,=, = =, = 等 邏輯操作符 % 隨機生成 300 x300的矩陣 inv(a); %求逆矩陣 toc etime(t1,t2)來計算 t1,t2之間的時間差來完成計時, 其中時差 t1-t2 。 例如: t0=clock a=rand(300); inv(a); elapsed_time=etime(clock,t0) %elapsed_time指流逝過的時間 同理可以使用 cputime來計時 t=cputime; your_operation; cputime-t 七、程序代碼優(yōu)化 1.

15、盡量不要使用循環(huán),而使用矩陣結構來進行運算。 例: t0=cputime n=100000; sum=0; for i=1:n sum=sum+1/i end sum t1=cputime-t0 而如果使用向量、矩陣和系統(tǒng)內部函數(shù) tic n=100000; a=1:n; total=cumsum(1./a) toc %cumsum函數(shù)實現(xiàn)累計求和 八、文件操作 matlab文件輸入、輸出( I/O)函數(shù)允許把其它 格式的數(shù)據(jù)文件直接讀進 matlab,它是以 c 語言文件 I/O函數(shù)為基礎的。 文件數(shù)據(jù)格式有兩種形式,一是二進制文件, 二是文本文件。在打開文件時需要進一步指 定文件格式類型,

16、即指定是二進制文件還是 文本文件。 1. 打開和關閉文件( fopen, fclose) 格式: fid=fopen(數(shù)據(jù)文件名 , 打開方式 ) r 表示對打開的文件 讀 數(shù)據(jù) w 表示對打開的文件 寫 數(shù)據(jù) a 表示在打開的文件末尾 添加 數(shù)據(jù) fid用于存儲文件句柄值,句柄值用來標識該 數(shù)據(jù)文件,其他函數(shù)可以利用它對該數(shù)據(jù) 文件進行操作。 文件一旦打開,即可進行讀寫操作,操作完 后 應及時關閉,使用 fclose函數(shù) 。 sta=fclose(fid) 關閉上述打開文件 該函數(shù)關閉 fid所表示的文件。 sta表示關 閉文件操作的返回代碼,若關閉成功,返回 0, 否則返回 1。 sta=

17、fclose(all) 關閉所有打開的文件 2. 讀寫二進制數(shù)據(jù)文件 fread, fwrite 可讀寫數(shù)據(jù)文件,文本文件。 例: fid=fopen(user.dat,r) a=fread(fid,50) sta=fclose(fid) 其中 fread的調用格式為: A,COUNT=fread(fid, size, precision) 其中 A用于存放讀取的數(shù)據(jù), COUNT返回所讀取的數(shù) 據(jù)元素個數(shù), fid為文件句柄, size為可選項,若不 選用則讀取整個文件內容,若選用則它的值可以是 下列值: (1) N表示讀取 N個元素到一個列向量。 (2) Inf表示讀取整個文件。 (3)

18、M,N表示讀數(shù)據(jù)到 M N的矩陣中,數(shù)據(jù)按列 存放。 precision代表讀寫數(shù)據(jù)的類型 2寫二進制文件 fwrite 函數(shù)按照指定的數(shù)據(jù)類型將矩陣中的元素寫 入到文件中。其調用格式為: COUNT=fwrite (fid, A, precision) 其中 COUNT返回所寫的數(shù)據(jù)元素個數(shù), fid為文件 句柄, A用來存放寫入文件的數(shù)據(jù), precision用于控 制所寫數(shù)據(jù)的類型,其形式與 fread函數(shù)相同。 例: 建立一數(shù)據(jù)文件 magic5.dat,用于存放 5 階魔方陣。 程序如下: fid=fopen(magic5.dat,w); cnt=fwrite(fid,magic(5

19、),int32); fclose(fid); 也可以直接導入數(shù)據(jù) txt文件 file/import data./next/finish 例如: work目錄下建立一個 hello.txt,復制如下數(shù)據(jù): 你好 歡迎來到 太原理工大學 請訪問如下網址: 1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555 九、應用程序接口 應用程序接口 是 matlab的附加組件。是一個 由相關函數(shù)組成的接口函數(shù)庫,可實現(xiàn)與外部程 序的交互。 MEX文件:是 matlab環(huán)境下調用 C、 FORTRAN 語言編寫的應用程序

20、模塊。 matlab 計算引擎:在使用 C、 FORTRAN編程時 可調用 matlab函數(shù)庫進行計算。 MAT文件:實現(xiàn) matlab與 C、 FORTRAN語言程序間的 數(shù)據(jù)交換 十、 matlab編譯 matlab編譯的原因: 1. 提高運算速度 2. 隱藏特定算法 3. 可產生獨立的 m文件 matlab編譯函數(shù): mcc MCC -options fun fun2 . mexfile1 . mlibfile1 . 如何關掉 matlabserver.exe 有時候,用戶為了節(jié)省計算機內存,或者是提高啟 動速度,會禁止 matlab server服務。 在控制面板 -管理工具 -服務

21、中 matlab server 的服務改 為禁用,手動啟動, matlabserver.exe就不運行了。 或者這樣操作 (這是卸載 MATLAB Server) : 打開一個 dos窗口 cd /webserver/bin/win32 matlabserver -remove 注: 指的是安裝目錄 小 結 本節(jié)主要介紹了 matlab語言程序設 計基礎。相對來說, matlab 編程簡 單,容易掌握。 通過學習,要求同學們 應能編寫簡 單程序。 結 束 語 本課程基于 matlab語言基礎,想繼續(xù) 深入學習,要多看其他文獻,相互討 論,并能多上手練習。 希望大家今后都能成為 matlab高手。

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!