第四章M文件和程序設(shè)計_第1頁
第四章M文件和程序設(shè)計_第2頁
第四章M文件和程序設(shè)計_第3頁
第四章M文件和程序設(shè)計_第4頁
第四章M文件和程序設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第四章 M文件和程序設(shè)計,主要內(nèi)容,4.1程序控制語句 4.2命令文件和函數(shù)文件 4.3字符串的求值 4.4程序性能優(yōu)化 4.5面向?qū)ο缶幊?4.1 程序控制語句,一、分支控制 分支控制語句有if和switch兩種語句 if結(jié)構(gòu) if expression commands end 【說明】 當(dāng)表達(dá)式expression的值為真,則執(zhí)行commands語句 組,否則跳過commands語句組,執(zhí)行end之后的語句。,4.1 程序控制語句,if-else結(jié)構(gòu) if expression commands1 else commands2 end,【說明】 如果表達(dá)式expression的值為真,

2、則執(zhí)行語句組 commands1, 然后跳過語句組commands2向下執(zhí)行; 若表達(dá)式expression的值為假, 則跳過語句組commands1, 執(zhí)行語句組commands2。,4.1 程序控制語句,if-elseif-else結(jié)構(gòu) if expression_1 command_1 elseif expression_2 command_2 elseif expression_n command_n else command_el end,【說明】 如果表達(dá)式expression_1的值為真,則執(zhí)行語句組command_1,若表達(dá)式expression_1的值為假,則判斷expres

3、sion_2的值,若為真,則執(zhí)行語句組command_2,否則向下繼續(xù)判斷表達(dá)式。如果所有表達(dá)式都為假,則執(zhí)行語句組command_el。,4.1 程序控制語句,switch-case結(jié)構(gòu) switch exp_const case value_1 commands_1 case value_2 commands_2 case value_n commands_n otherwise commands_ow end,4.1 程序控制語句,【說明】 表達(dá)式exp_const的值和哪一個case語句后的測試值相等,就執(zhí)行那個case語句下的語句組。如果exp_const和所有測試值都不相等,就執(zhí)行

4、otherwise后的語句組commands_ow。 switch后的exp_const表達(dá)式可以為標(biāo)量或者字符串。對于標(biāo)量形式,用關(guān)系運(yùn)算符“= =”比較,對于字符串形式,用函數(shù)strcmp比較。 case語句后的value_n值可以是標(biāo)量、字符串,也可以是細(xì)胞數(shù)組。如果是細(xì)胞數(shù)組,Matlab會把表達(dá)式exp_const的值和 細(xì)胞數(shù)組中的每個元素比較,只要有一個元素和 exp_const值相同,比較結(jié)果就為相等。,4.1 程序控制語句,二、循環(huán)控制,for循環(huán) for x=Array commands end,【說明】 x稱為循環(huán)變量,commands稱為循環(huán)體。循環(huán)的執(zhí)行步驟是:循環(huán)變

5、量從左到右依次取Array數(shù)組的一列,每取一列就執(zhí)行一次循環(huán)體,循環(huán)體被執(zhí)行的次數(shù)為Array的列數(shù)。for循環(huán)一般用于循環(huán)次數(shù)已知的程序流程控制 。,4.1 程序控制語句,while循環(huán) while expression commands end 【說明】 先判斷表達(dá)式expression的值,如果其值為真,則執(zhí)行 commands循環(huán)體;執(zhí)行完循環(huán)體后,繼續(xù)判斷表達(dá)式expression的值,直到表達(dá)式expression的值為假,結(jié)束循環(huán)。while循環(huán)通常用在循環(huán)次數(shù)未知的情況下,而且要在循環(huán)體修改循環(huán)表達(dá)式的值,否則容易造成死循環(huán)。 break 從循環(huán)體中跳出,并使循環(huán)結(jié)束。,4.1

6、 程序控制語句,例4.1.2:輸入物品的標(biāo)簽號碼,顯示物品的種類。其中標(biāo)簽號碼為1、5、7的物品為食品,號碼為10到19的物品為辦公用品,號碼為20、24、28的為音像制品。 要求:不斷從鍵盤輸入標(biāo)簽號碼,輸入一個號碼顯示一次物品種類,輸入錯誤號碼要給出提示,輸入號碼0則結(jié)束輸入。,4.1 程序控制語句,三、異常檢測,Matlab有異常處理機(jī)制,即可以檢測某些語句的執(zhí)行是否正確,如果發(fā)生運(yùn)行錯誤,Matlab的異常處理機(jī)制會捕捉到這個錯誤,并跳轉(zhuǎn)到用戶指定的錯誤處理程序。 try-catch語句 try commands catch handles end 【說明】 執(zhí)行語句組commands

7、,當(dāng)語句組commands執(zhí)行 發(fā)生錯誤時,跳轉(zhuǎn)到錯誤處理語句組handles。(例4.1.3),4.1 程序控制語句,四、其他程序流控制語句 返回指令 return強(qiáng)制結(jié)束函數(shù)或者命令的調(diào)用,將控制權(quán)交給主調(diào)函數(shù)或者命令窗口。 出錯處理 error(message)顯示出錯信息message,中止程序運(yùn)行 errortrap發(fā)生錯誤后,程序繼續(xù)執(zhí)行或退出的狀態(tài)切換 lasterr顯示Matlab給出的最新的出錯 信息,并中止程序運(yùn)行,4.1 程序控制語句,警告處理 warning(message) 顯示警告信息message,程序繼續(xù)運(yùn)行 lastwarn 顯示Matlab最新給出的警告信息

8、,程序自動運(yùn)行 五、人機(jī)交互控制 input v=input(message)將用戶鍵入的內(nèi)容賦給變量v,messages是顯示信息 v=input(message, s) 將用戶鍵入的內(nèi)容作為 字符串賦給變量v,4.1 程序控制語句,keyboard 從鍵盤讀入多個Matlab指令,直到用戶輸入return指令才返回。 yesinput v=yesinput(Prompt, default, posible) 【說明】 Prompt是顯示在屏幕上的提示信息;default是缺省值,即如果沒有鍵 盤輸入時變量v賦值為default;posible是變量v可能接受的值。,pause pause

9、暫停執(zhí)行文件,等用戶輸入任意按鍵后繼續(xù)執(zhí)行 pause(n)暫停n秒后,程序繼續(xù)執(zhí)行 disp disp(X) 顯示數(shù)組X的內(nèi)容,但是不顯示數(shù)組X的名字,4.2 命令文件和函數(shù)文件,用戶可以把需要運(yùn)行的Matlab指令保存在一個以“.m”為擴(kuò)展名的文件中,通過在命令窗口鍵入這個文件的名字來運(yùn)行文件中的Matlab指令,我們稱這些文件為m文件。按照m文件的組成和特點,可以分為命令文件和函數(shù)文件。,4.2 命令文件和函數(shù)文件,一、命令文件 有關(guān)命令文件的描述如下: 命令文件沒有輸入?yún)?shù)也沒有輸出參數(shù),只是一些Matlab命令和函數(shù)的組合; 命令文件可以操作基本工作空間(Base Workspace

10、)的變量,也可以生成新的變量。命令文件執(zhí)行結(jié)束后新變量將保存在基本工作空間中,不會被自動清除; 命令文件是用“.m”為擴(kuò)展名的文件,只要命令文 件在搜索路徑上,在命令窗口鍵入文件名就可以 運(yùn)行命令文件。,例4.2.1:編寫命令文件求解小于1000且為2的整數(shù)次冪的正整數(shù)。,4.2 命令文件和函數(shù)文件,【說明】 M文件是一個文本文件,可以使用各種文本編輯器編輯和修改,也可以使用MATLAB的M文件編輯器/調(diào)試器(Editor/Debugger); 在運(yùn)行程序之前,一定要確定這個M文件是否在MATLAB的搜索路徑中。若不在,可以選擇【File|Set Path】菜單,在路徑設(shè)置對話框中,加入該路徑

11、到所有搜索路徑的最前端。一旦用【Set Path】菜單設(shè)置了搜索路徑后,Matlab會自動保存這些路徑; 在MATLAB的命令窗口輸入M文件名即可運(yùn)行該命令文件; M文件運(yùn)行過程中產(chǎn)生的變量會駐留在基本工作空間 中,即使文件運(yùn)行結(jié)束也不會被自動刪除,只有關(guān)閉 了MATLAB后基本工作空間才會被刪除。,4.2 命令文件和函數(shù)文件,二、函數(shù)文件 函數(shù)文件的使用比命令文件更加靈活,能夠更好的實現(xiàn)復(fù)雜問題的功能模塊劃分。函數(shù)文件如同一個“黑箱子”,調(diào)用者僅僅需要把輸入變量傳遞給函數(shù),就會得到函數(shù)的輸出變量,即函數(shù)的運(yùn)行結(jié)果。 對函數(shù)文件有如下的描述: 函數(shù)文件要在第一行用function關(guān)鍵字來顯式的

12、定義; 函數(shù)文件有輸入變量和輸出變量; 函數(shù)文件的名字和第一行所定義的函數(shù)名相同; 可以用比函數(shù)定義中數(shù)目少的輸入變量和輸出變量 來調(diào)用函數(shù); 函數(shù)文件內(nèi)部定義的變量屬于臨時變量,只有函數(shù) 運(yùn)行期間才被生成,函數(shù)運(yùn)行結(jié)束后,這些臨時變 量會被Matlab系統(tǒng)自動刪除。,4.2 命令文件和函數(shù)文件,三、函數(shù)文件的組成 函數(shù)定義行 函數(shù)M文件的第一行用關(guān)鍵字“function”把M文件定義為一個函數(shù),指定函數(shù)的名字,同時定義了函數(shù)的輸入變量和輸出變量。輸入變量的定義用圓括號(),如果有多個輸入變量則用逗號分隔;輸出變量的定義用中括號 ,如果有多個輸出變量則用逗號分隔。 H1行 所謂H1行指幫助文本

13、的第一行,它緊跟在定義行之 后并以“%”符號開頭,用于概括說明函數(shù)的功能。 在命令窗口用lookfor命令時將顯示函數(shù)的H1行。,4.2 命令文件和函數(shù)文件,函數(shù)幫助文本 幫助文本指位于H1行之后函數(shù)體之前的說明文本,它同樣以“%”符號開頭,一般用來比較詳細(xì)地介紹函數(shù)的功能、用法以及函數(shù)的修改記錄。在命令窗口用help命令時將顯示函數(shù)的H1行和所有幫助文本。 函數(shù)體 是函數(shù)的主體部分,函數(shù)的功能是通過函數(shù)體實現(xiàn)的。函數(shù)體可以包括所有的Matlab合法命令、函數(shù)和流程控制語句。,例4.2.2:編寫函數(shù)文件求,4.2 命令文件和函數(shù)文件,四、函數(shù)的輸入變量和輸出變量 1. 輸入變量和輸出變量的檢測

14、 檢測輸入變量和輸出變量的函數(shù),其格式和功能如下: n = nargin用于函數(shù)內(nèi),返回實際輸入變量的個數(shù) n = nargin(fun)獲取fun函數(shù)的聲明的輸入變量個數(shù) n = nargout用于函數(shù)體,返回實際輸出變量的個數(shù) n = nargout(fun)獲取fun函數(shù)的聲明的輸出變量個數(shù) vname=inputname(n)用于函數(shù)內(nèi),返回第n個輸入變量的實際 調(diào)用變量名字 2. 數(shù)目可變的輸入變量和輸出變量 Matlab支持輸入變量和輸出變量數(shù)目可變的函數(shù)。 用戶可以使用Matlab提供的兩個指令來自己編寫參 數(shù)數(shù)目可變的函數(shù)。,4.2 命令文件和函數(shù)文件,varargin數(shù)目可變

15、的輸入變量列表 varargout數(shù)目可變的輸出變量列表,【說明】 編寫參數(shù)數(shù)目可變的函數(shù)時,函數(shù)定義行的“數(shù)目可變的變量”要放在“普通變量”之后; varargin的工作過程: varargin是一個細(xì)胞數(shù)組,里面放置的是“數(shù)目可變的變量”; 函數(shù)被調(diào)用時,輸入變量的傳遞規(guī)則是:實際輸入變量依次逐個傳遞 給函數(shù)定義的輸入變量列表中的“普通輸入變量”; 然后把剩余的實際輸入變量依次傳遞給varargin細(xì)胞 數(shù)組中的細(xì)胞; varargin細(xì)胞數(shù)組中的細(xì)胞作為一個“普通輸入變量” 來使用。,4.2 命令文件和函數(shù)文件,例4.2.3 :用參數(shù)可變的方法定義一個繪制圓環(huán)的函數(shù)。其中第一個輸入變量為

16、基圓半徑,是必選的參數(shù);第二個輸入變量為內(nèi)圓半徑,為可選參數(shù);還可以輸入可選的圖形屬性控制字符串。如果有輸出變量,則不畫圖,只返回繪圖數(shù)據(jù);如果沒有輸出變量,則繪制圖形。,varargout的工作過程和varargin類似,只是其對應(yīng)的是函數(shù)的輸出變量。,4.2 命令文件和函數(shù)文件,五、有關(guān)工作空間 1. 工作空間 有了函數(shù)文件后,工組空間會變得復(fù)雜起來。Matlab將工作空間分成2類: 基本工作空間 基本工作空間是Matlab啟動后自動創(chuàng)建的,只有關(guān)閉了Matlab后基本工作空間才會被刪除。基本工作空間內(nèi)部包括Matlab建立的特殊變量(如pi、i、j、NaN等)和命令窗口執(zhí)行語句過程中生成

17、的變量。 函數(shù)工作空間 函數(shù)工作空間是函數(shù)文件運(yùn)行時自動創(chuàng)建的工作空間, 它是臨時的,當(dāng)函數(shù)運(yùn)行完畢后,會被系統(tǒng)自動撤銷。 其中保存了函數(shù)內(nèi)部定義或者運(yùn)算生成的臨時變量, 它們在函數(shù)執(zhí)行完成后就不存在了。,4.2 命令文件和函數(shù)文件,2. 局部變量和全局變量 局部變量 存在于函數(shù)工作空間的臨時變量(即函數(shù)內(nèi)部定義的變量)稱為局部變量。局部變量只能被定義它的函數(shù)使用。 在函數(shù)的定義中,其輸入變量和輸出變量就是局部變量,即函數(shù)的輸入變量和輸出變量只能在本函數(shù)內(nèi)部被使用。 全局變量 通過global關(guān)鍵字可以定義全局變量。全局變量可以被所有工作空間共享,即所有工作空間都可以訪問全局變量,但是前 提是

18、使用之前要先在工作空間內(nèi)用global關(guān)鍵字聲明 全局變量。建議在函數(shù)的開始處定義或聲明全局變量, 全局變量的名字一般采用大寫字母命名。,4.2 命令文件和函數(shù)文件,3. 跨工作空間的變量賦值 有些時候我們需要跨工作空間給變量賦值,Matlab提供了相關(guān)的函數(shù)。 格式: assignin(ws, var, val) 【說明】 把當(dāng)前工作空間的變量val賦值給ws工作空間的名為var的變量。 其中,ws可以?。篵ase表示基本工作空間 caller表主調(diào)函數(shù)工作空間,六、子函數(shù)和私有函數(shù) 如果一個項目比較復(fù)雜,就需要編寫大量的函數(shù)文件,這些函數(shù)文件通常都是該工程中專用的,其他程序很少會用到。我們

19、應(yīng)該限制這些自編函數(shù)可以被調(diào)用的范圍,避免在Matlab基本工作空間中出現(xiàn)過多的標(biāo)識符,盡量避免在一個工作空間內(nèi)出現(xiàn)同名函數(shù)。為了限制函數(shù)的使用范圍,Matlab支持子函數(shù)和私有函數(shù)。,4.2 命令文件和函數(shù)文件,1.子函數(shù) Matlab允許一個函數(shù)文件內(nèi)定義多個函數(shù)。其中,第一個定義的函數(shù)稱為主函數(shù),其他的函數(shù)稱為子函數(shù)。,關(guān)于主函數(shù)和子函數(shù)的描述如下: 每個文件的第一行定義的是主函數(shù); 只有主函數(shù)可以被其他程序調(diào)用; 函數(shù)文件的名字必須和主函數(shù)相同; 子函數(shù)只能被處在同一個文件中的主函數(shù)或者其他子函數(shù)調(diào)用; 主函數(shù)和各個子函數(shù)的工組空間是彼此獨(dú)立的,即每個函數(shù)擁有自己獨(dú)立的工作空間。,4.

20、2 命令文件和函數(shù)文件,2.私有函數(shù) 私有函數(shù)是在函數(shù)M文件所在目錄的private子目錄中的函數(shù)M文件,其性質(zhì)如下: 私有函數(shù)只能被private的直接父目錄中定義的M文件調(diào)用, 其他目錄的M文件或者命令窗口無權(quán)調(diào)用私有函數(shù)。 私有函數(shù)的定義和構(gòu)成和普通函數(shù)相同。,例4.2.4:編寫函數(shù)文件求,4.2 命令文件和函數(shù)文件,七、 M文件的執(zhí)行 當(dāng)Matlab遇到一個新的標(biāo)識符corv時,它將按照下面步驟尋找這個標(biāo)識符。 檢查corv是否是一個變量名; 檢查corv是否是內(nèi)建函數(shù)名; 檢查corv是否是子函數(shù); 檢查corv是否是私有函數(shù); 檢查corv是否是當(dāng)前目錄中的文件; 在Set Pat

21、h指定的路徑內(nèi)搜索corv文件; Matlab將使用最先找到的那個corv標(biāo)識符。如果經(jīng)過 上述步驟的搜索,也無法找到corv標(biāo)識符,則給出提示 信息“? Undefined function or variable corv.”,4.3 字符串的求值,Matlab提供了字符串求值的函數(shù),利用這些函數(shù),可以用字符串構(gòu)造Matlab的函數(shù)和命令,并運(yùn)行這些字符串命令。 一、eval y=eval(expression)計算字符串表達(dá)式expression a1, a2, . = eval(function(b1, b2, .) ) 計算函數(shù)調(diào)用的字符串表達(dá)式 【注意】eval的輸入變量只能是字符

22、串,例4.3.1: 表達(dá)式字符串的計算,例4.3.2: eval和函數(shù)調(diào)用,4.3 字符串的求值,二、 feval y1, y2, . = feval(function, x1, ., xn) 【說明】 function只能是函數(shù)名,不能是表達(dá)式字符串。 x1、x2等是調(diào)用函數(shù)function的輸入變量,即函數(shù)的自變量值。 y1、y2等是函數(shù)的輸出變量,即函數(shù)的返回值。,例4.3.3: feval的使用方法,4.3 字符串的求值,三、內(nèi)聯(lián)函數(shù) 用戶可以用M文件來建立函數(shù),函數(shù)的功能可以很復(fù)雜,函數(shù)的輸出變量也可以有多個。對于簡單的數(shù)學(xué)表達(dá)式,用M文件來建立函數(shù)就顯得不夠方便。Matlab提供了

23、內(nèi)聯(lián)函數(shù)的功能,內(nèi)聯(lián)函數(shù)可以將表達(dá)式轉(zhuǎn)換為函數(shù)。內(nèi)聯(lián)函數(shù)是Matlab面向?qū)ο蟮囊粋€類,其類型名為inline。 1.內(nèi)聯(lián)函數(shù)的建立 g = inline(expr) 將串表達(dá)式expr轉(zhuǎn)換為內(nèi)聯(lián)函數(shù) g = inline(expr, arg1, arg2,.) 將串表達(dá)式expr轉(zhuǎn)化為以arg1、arg2等為自變量(輸 入變量)的 內(nèi)聯(lián)函數(shù),4.3 字符串的求值,g = inline(expr,n) 將串表達(dá)式expr轉(zhuǎn)化為以自變量x,P1,P2,Pn為自變量的 內(nèi)聯(lián)函數(shù)。其中P必須大寫。,例4.3.4:建立內(nèi)聯(lián)函數(shù)表示數(shù)學(xué)函數(shù),并計算的值,例4.3.5:閱讀下列程序代碼,了解inline的

24、使用方法。,4.3 字符串的求值,2. 和內(nèi)聯(lián)函數(shù)有關(guān)的函數(shù) class(fun)%獲取內(nèi)聯(lián)函數(shù)的數(shù)據(jù)類型 char(fun)%獲取內(nèi)聯(lián)函數(shù)的計算公式字符串 argnames(fun)%獲取內(nèi)聯(lián)函數(shù)的輸入變量名字 vectorize(fun)%使內(nèi)聯(lián)函數(shù)具有數(shù)組運(yùn)算規(guī)則,例4.3.6:閱讀下列程序代碼,了解和內(nèi)聯(lián)函數(shù)相關(guān)的函數(shù)的使用方法。,4.4 程序性能優(yōu)化,Matlab語言是解釋執(zhí)行的語言,其優(yōu)點是編程簡單、使用方便,但其缺點就是程序執(zhí)行速度緩慢,執(zhí)行效率低下。對于復(fù)雜的程序,程序員要考慮程序性能的優(yōu)化,讓應(yīng)用程序既能夠完成預(yù)期的功能,又具有較快的運(yùn)行速度和較高的執(zhí)行效率。 一、源代碼級的

25、優(yōu)化 1. 循環(huán)的向量化 Matlab的運(yùn)算功能是針對向量的,因此盡量少使用for循環(huán)和wile循環(huán),用向量化的數(shù)組代替單個元素的循環(huán)運(yùn)算,即循環(huán)的向量化。循環(huán)的向量化不但能縮短源代碼的長度,還能加快 程序的運(yùn)行速度,提高程序的執(zhí)行效率。,例4.4.1:求log(n)在n從1到100之間的值,n為整數(shù)。,4.4 程序性能優(yōu)化,2. 數(shù)組大小的預(yù)定義 Matlab在使用變量之前,不需要預(yù)先定義變量的名字和大小。如果變量的大小沒有被顯示的指定,則每當(dāng)新賦值的元素下標(biāo)超過變量的維數(shù)時,Matlab就自動為變量擴(kuò)充維數(shù),這大大降低了程序的運(yùn)行效率。如果預(yù)先知道變量的維數(shù),就可以預(yù)先定義好變量尺寸,通常

26、采用ones、zeros或者cell等函數(shù)預(yù)定義變量維數(shù)。,例4.4.2:預(yù)定義變量維數(shù)編程,4.4 程序性能優(yōu)化,3. 內(nèi)存管理 Matlab系統(tǒng)的運(yùn)行會占用大量的內(nèi)存,在編寫Matlab程序的時候要給變量分派合理內(nèi)存,提高內(nèi)存使用效率,減少內(nèi)存碎片產(chǎn)生。 沒有用的變量最好用clear語句刪除 盡量不產(chǎn)生大的臨時變量 使用save和load命令保存和讀取變量 盡量采用函數(shù)文件代替命令文件 4. 盡可能采用Matlab提供的函數(shù) Matlab提供了大量的函數(shù)供用戶調(diào)用,這些函數(shù)涵蓋了 大多數(shù)的常用操作。要盡可能使用Matlab提供的函數(shù), 不要自己編寫具有和Matlab提供的函數(shù)具有相同功能

27、的代碼,這樣無論從效率、可靠性和開發(fā)時間上都是 得不償失的。,4.4 程序性能優(yōu)化,二、程序加速器 MATLAB提供了JIT(Just In Time)和加速器(Accelerator),用來加快函數(shù)文件和命令文件的運(yùn)行速度。JIT和加速器可以通過MATLAB命令開啟和關(guān)閉,默認(rèn)情況下JIT和加速器都是啟動的。 相關(guān)命令如下: feature accel on開啟加速器 feature accel off關(guān)閉加速器 feature JIT on開啟JIT feature JIT off關(guān)閉JIT,4.5 面向?qū)ο缶幊?Matlab支持面向?qū)ο蟮某绦蛟O(shè)計方法,本節(jié)簡單介紹Matlab中面向?qū)ο缶?/p>

28、程的基本概念和應(yīng)用方法。 一、 類和對象 類(Class)是一個抽象的概念,它是具有相同特征和行為的對象的集合。 對象(Object)是類的具體實例(Instance),相當(dāng)于類集合中的具體元素。 例如:浮點數(shù)double是一個類,a=0.3定義了浮點數(shù)變量a,a就是浮點 數(shù)類的一個對象。 Matlab內(nèi)建了5個類: char、double、cell、struct、sparse、unit8 我們可以通過class函數(shù)來獲取變量的數(shù)據(jù)類型, 其調(diào)用格式如下: str=class(v)%返回變量v的數(shù)據(jù)類型名稱,4.5 面向?qū)ο缶幊?二、 屬性和方法 類中封裝了該類對象共有的特征和行為。 屬性(P

29、roperty) 對象的特征稱為屬性,用數(shù)據(jù)來表示。對象的屬性通常用結(jié)構(gòu)體來描述,因此我們訪問對象的屬性可以象訪問結(jié)構(gòu)體的一樣用成員運(yùn)算符“.”來訪問,也可以用get和set函數(shù)來訪問對象的屬性。 get(h,PropertyName)返回對象h的PropertyName屬性的值 set(H,PropertyName, Value,.) 賦值H對象的PropertyName屬性值為Value。 方法(Method) 對象的行為稱為方法,用函數(shù)來表示。某個類的方法 只能操作該類的對象。,4.5 面向?qū)ο缶幊?三、構(gòu)造函數(shù) Matlab中沒有類的聲明語句。定義對象要調(diào)用類的構(gòu)造函數(shù)(Constructor)。構(gòu)造函數(shù)的名字必須與類同名,比如cell函數(shù)和struct函數(shù)就分別是細(xì)胞數(shù)組類和結(jié)構(gòu)體數(shù)組類的構(gòu)造函

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論