MATLAB編程基礎第11講--M文件、底層IO命令數(shù)據(jù)輸入與輸出程序優(yōu)化_第1頁
MATLAB編程基礎第11講--M文件、底層IO命令數(shù)據(jù)輸入與輸出程序優(yōu)化_第2頁
MATLAB編程基礎第11講--M文件、底層IO命令數(shù)據(jù)輸入與輸出程序優(yōu)化_第3頁
MATLAB編程基礎第11講--M文件、底層IO命令數(shù)據(jù)輸入與輸出程序優(yōu)化_第4頁
MATLAB編程基礎第11講--M文件、底層IO命令數(shù)據(jù)輸入與輸出程序優(yōu)化_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1.第11講:程序流控制,M文件,底層命令的數(shù)據(jù)輸入和輸出,程序優(yōu)化,2,5.2.5程序流控制,1。return語句用于終止當前正在執(zhí)行的函數(shù)中的命令,并返回調用它的函數(shù),還可用于終止鍵盤輸入模式并控制鍵盤。3,情況5-15返回控制,A=1,2,3;4,5,6 x,y=大小(A),如果是空的(A)顯示(矩陣A為空);返回elseif (x=y) disp(矩陣A不是正方形);返回其他顯示(矩陣A是一個正方形);結束,4,2。echo命令,它可以使文件在執(zhí)行過程中可見。echo on開關顯示所有執(zhí)行的命令。echo off開關顯示所有執(zhí)行的命令。不顯示文件說明。3.暫停,使程序暫時運行,并等待用

2、戶按任意鍵繼續(xù)。5,4。語句,當條件滿足時,while和for結構的循環(huán)可以提前終止。例5-16計算110次回波之和n=1和=1,n=1結束和n,6。1.MATLBA程序的基本設計原則。1.以下內容是程序的注釋,使程序更易讀。2.用清晰的指令清除主程序開始時的變量,以消除工作空間中其他變量對程序操作的影響。但是注意不要在子程序中使用clear。3.參數(shù)值應集中在維護程序的開始。我們應該充分利用MATLAB工具箱提供的指令來執(zhí)行操作,并在句子行后輸入分號,使其和中間結果不顯示在屏幕上,從而提高執(zhí)行速度。4.輸入指令可以用來輸入一些臨時數(shù)據(jù);對于大量的參數(shù),建立一個子程序來存儲參數(shù),在主程序中用子

3、程序的名字來調用。5.3 M文件,7.5,程序盡可能模塊化,即主程序調用子程序,所有子程序合并在一起執(zhí)行所有操作。6.充分利用調試器調試程序(設置斷點、單步執(zhí)行、連續(xù)執(zhí)行)。7.設置MATLAB的工作路徑,使程序可以運行。8,進入MATLAB的編輯器/調試器窗口編輯程序(編輯*。m)。在編輯環(huán)境中,字符的不同顏色顯示字符的不同屬性。綠色:評論;黑色:程序主體;紅色:屬性值設置;藍色:控制流程。在運行程序之前,必須設置MATLAB的工作路徑,以便運行程序和運行程序所需的其他文件都在當前目錄下。只有這樣,程序才能正常運行。否則,某些系統(tǒng)文件或數(shù)據(jù)可能無法讀取,因此程序無法執(zhí)行。您可以通過cd命令在

4、命令窗口中更改和顯示當前的工作路徑。也可以通過路徑瀏覽器進行設置。2.編輯M文件,設置MATLAB的工作路徑。9.在中訪問程序文件。m格式,包括一系列的MATLAB指令和必要的注釋。必須在工作空間中創(chuàng)建和獲取變量,也就是說,處理的數(shù)據(jù)是命令窗口中的數(shù)據(jù),并且不輸入或返回任何參數(shù)。(類似于批處理文件)當一個程序運行時,它只需要在工作區(qū)中鍵入它的名稱。第三,MATLAB的程序類型,MATLAB有三種程序類型,一種是在命令窗口下執(zhí)行的腳本M文件;另一個是可訪問的M文件,即程序文件(命令文件);最后一個是函數(shù)文件。1.腳本M文件(歷史命令)是在命令窗口中輸入和執(zhí)行的,其中使用的所有變量都需要在工作空間

5、中獲取,不需要調用輸入和輸出參數(shù),并在退出MATLAB后釋放。10,(1)函數(shù)定義行(關鍵字function out1,out2,=文件名(in1,in2,)輸入和輸出(返回)參數(shù)的數(shù)量由nargin和nargout給出,這兩個變量由MATLAB保留。(支持多態(tài)性)(2)第一個幫助行,即H1行,以(%)開頭,這是lookfor指令搜索的行;(3)函數(shù)文件myhilb1.m myhilb.m也可以在中訪問。m格式,但文件名必須與函數(shù)名相同。該函數(shù)接受輸入?yún)?shù),然后執(zhí)行并輸出結果。使用幫助命令顯示其注釋描述。具有標準的基本結構。、11、(3)功能描述和相關注釋以(%)開頭,解釋功能和相關內容。如果

6、您不想顯示某條信息,可以在它前面添加一個空行。(4)函數(shù)語句除了返回和輸入變量外,函數(shù)體中使用的所有變量都是局部變量(即需要立即使用),即函數(shù)返回后,這些變量會在MATLAB的工作空間中自動清除。如果您希望這些中間變量是在整個程序中起作用的變量,您可以將它們設置為全局變量。(全局),12,1。子程序與主程序之間的數(shù)據(jù)通過參數(shù)傳輸,子程序利用主程序傳輸?shù)膮?shù)進行計算,并將結果返回給主程序。您可以使用return命令終止當前子例程。4.聲明子程序(函數(shù)程序)變量;2.如果函數(shù)中的變量沒有明確聲明,那么這個變量只在函數(shù)內部使用,即局部變量。如果兩個或多個函數(shù)共享一個變量(或者主程序中的一個變量在子程

7、序中使用,但它不是參數(shù)),可以通過使用全局變量將其聲明為全局變量。全局變量的使用可以減少參數(shù)傳遞,而全局變量的合理使用可以提高程序執(zhí)行的效率。13、5.4數(shù)據(jù)輸入和輸出的底部I/O命令,5.4.1數(shù)據(jù)輸入1直接生成數(shù)據(jù)例518直接在命令窗口中輸入A=3 2 1;8 5 2;9 6 3,14,5.4.1數(shù)據(jù)輸入,2使用M文件在文件中輸入數(shù)據(jù):創(chuàng)建M文件并在文件中輸入數(shù)據(jù)。示例519 M文件輸入數(shù)組函數(shù)矩陣B=3 2 18 5 2;9 6 3;1 1 1,15,5.4.1數(shù)據(jù)輸入,3使用load命令加載數(shù)據(jù):常用的調用格式load filename.mat示例520 load file data

8、_ b . txt 3 2 1 8 5 2 9 6 3 load data _ b . txt y=data _ b . 3,16,5.4.2數(shù)據(jù)輸出有三種主要的數(shù)據(jù)輸出方式:(1)直接在終端上顯示結果;(2)日記命令用于將命令控制窗口中相關文件的內容以文本的形式存儲在指定的文件中,以后可以編輯成所需的形式。日記文件名%記錄文件名文件中的內容。打開先前打開的日記文件,并返回到原始日記命令。日記關閉%暫停日記命令的執(zhí)行。17.(3)保存命令。保存文件名選項將當前工作空間的所有變量保存在文件名設置的文件中。這個文件的后綴名稱通常是mat。如果沒有指定文件名變量,默認情況下,它將被保存到matlab

9、.mat文件中。有以下選項:-追加以將此變量保存在現(xiàn)有mat文件中。-format確定要保存的變量的格式。有以下格式:-8位ASCII格式。-ASCII-制表符8位帶制表符分隔符的ASCII格式。-ascii-雙制表符16位ascii格式,帶制表符分隔符。-mat默認格式下面是一些例子:1:sav E test.mat保存當前工作空間中的所有變量以進行測試. mat 2: save(d : mymfilesjune 10,vol,temp,-ASCII),并將變量vol和temp以ASCII格式保存到june 10,18,例如521,who日記數(shù)據(jù)2 . MB=1336010 B1=eye(4

10、)B2=magic(5);世衛(wèi)組織的日記c=b2.2型數(shù)據(jù)2 . m b=1:10 B1=眼睛(4);b2=魔法(5);日記關閉日記打開b3=5:15日記關閉類型data2.m b=1:10 b1=眼睛(4);b2=魔法(5);日記關閉B3=5:15日記關閉,19,5.4.3文件讀寫的I/O命令功能,1 fopen常用的調用格式3360fn=fopen(文件名,權限)Fopen(全部)文件名,Permission=fopen (fn) fopen(文件名)(1)文件名打開文件名(2)權限指定的操作模式,常用的有r,w,a(追加)等。Rb、WB和AB是二進制文件。Rt wt at用于文本格式的文

11、件。(3)fn指打開文件的文件代碼。如果打開成功,則為正整數(shù)。否則,它是1。(4)all指除了目前已打開的標準文件以外的所有文件的文件代碼。20,5.4.3文件讀寫的I/O命令功能,2 fclose常用調用格式: flose(fn)fcf lose(all)(1)fn指用文件代碼fn關閉文件。(2)all關閉所有打開的文件,代碼0、1和2除外。,21,5.4.3文件讀寫的I/O命令功能,3 fprintf通常調用格式: fprintf(fn,format,A),將輸出表中的矩陣A按照格式指定的格式輸出到文件代碼fn。示例523fprintf函數(shù)應用程序x=0:1:1。y=x;exp(x);fi

12、d=fopen(exp.txt,w);fprintf(fid,% 6.2 f .8fn,y);f close(FID);0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880.70 2.01375271 0.80 2.22255003fgetl函數(shù)fgetl(fn):從文件代碼fn中讀取一個行字符串。8 fseek功能狀態(tài)=fseek(fn,偏移量,原點):定位文件位置指針狀態(tài)代碼fn。參數(shù)原點是指定的位置,偏移是偏移。9 ft

13、ell函數(shù)位置=ftell(fn):返回fn文件位置指針狀態(tài)的當前位置。如果訪問失敗,它將返回1。23,5.5程序優(yōu)化,1。循環(huán)矢量化可以縮短程序的長度,提高程序的執(zhí)行效率。2預定義變量Matlab將任何變量視為一個矩陣。24,5.6面向對象編程概述。類1和對象類是由對象組成的抽象概念。表示每個對象的公共數(shù)據(jù)結構。Isa()、iscell()、ischar()等邏輯判斷功能2面向對象編程的內涵是充分利用“類”和“對象”編程成為面向對象編程。(1)創(chuàng)建類目錄(2)選擇要構建的類的數(shù)據(jù)結構(3)對象構造函數(shù)(4)顯示函數(shù)(5)與其他類的轉換函數(shù),25% cfwave . m %曲線擬合為1/nt波

14、高%比較預期的最大波高% n=10:1:1000ra=波(n);HRMS=1;hs=HRMS * n th wave(3);r=hrms/hs %發(fā)現(xiàn)Hrms/Hs=0.7063 Hu=Hrms * n波(n);logn=log(n);y=poly val(poly it(sqrt(logn),hu,2),sqrt(logn);% 4.2164 e-002 7.2920 e-001 6.0004 e-001來自poly it(sqrt(logn),hu,2),如果n=2:133601000 poly it(sqrt(logn,hu,2)log log log log(n,ABS(1-y ./Hu);% % hmax 1=0.707 * hs *(sqrt(log(n);% hmax2=hmax1 0.707*hs*0.5772。/(2 * sqrt(log(n);% dif 1=hmax 1-Hu;% dif 2=hmax 2

溫馨提示

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

評論

0/150

提交評論