Matlab程序設計(六) | 您所在的位置:網(wǎng)站首頁 › 屬馬和屬蛇的婚配如何 › Matlab程序設計(六) |
本部分Matlab中的函數(shù)創(chuàng)建非常重要,主要分為三個小部分: (本部分主要參考了Matlab文件的講述:https://ww2.mathworks.cn/help/matlab/function-basics.html)。 一、函數(shù)基本知識function語法:function [y1,...,yN] = myfun(x1,...,xM),其中[y1,...,yN]為輸出量,myfun為函數(shù)名,(x1,...,xM)為函數(shù)輸入量。 有效的函數(shù)名稱以字母字符開頭,并且可以包含字母、數(shù)字或下劃線。 三個小注意事項: 注意事項一:可以將函數(shù)保存在以下位置: 1、只包含函數(shù)定義的函數(shù)文件中。文件的名稱應與文件中其函數(shù)的名稱一致。 2、包含命令和函數(shù)定義的腳本文件中。函數(shù)必須位于該文件的末尾。腳本文件不能與文件中的函數(shù)具有相同的名稱。R2016b 或更高版本的腳本中支持函數(shù)。 注意事項二:文件可以包含多個*部函數(shù)或嵌套函數(shù)。為提高可讀性,可使用?end?關鍵字來表示文件中每個函數(shù)的末尾。以下情況下需要?end?關鍵字: 文件中有任意函數(shù)包含嵌套函數(shù)。 該函數(shù)是腳本文件內(nèi)的*部函數(shù)。 注意事項三: 需要在代碼文件中創(chuàng)建函數(shù) 下面是示例部分: (1)創(chuàng)建僅包含一個輸出的函數(shù) 在命令行中調(diào)用函數(shù)*erage (2)腳本文件中創(chuàng)建函數(shù) (3)包含多個輸出的函數(shù) (4)函數(shù)文件中的多個函數(shù) 注意事項: *部函數(shù)僅可供同一文件中的其他函數(shù)使用。 函數(shù)只能在文件中創(chuàng)建,不能在命令行中創(chuàng)建。 有效的函數(shù)名稱以字母字符開頭,并且可以包含字母、數(shù)字或下劃線。 兩種創(chuàng)建方式:在腳本中僅有函數(shù)命令,需要在命令行調(diào)用函數(shù);在腳本中既有函數(shù)命令還有函數(shù)的調(diào)用命令,那么直接保存完腳本文件后,點擊運行或者在命令行中輸入腳本文件名稱,然后點擊enter。 二、在編譯器中運行函數(shù)在名稱為?myfunction.m?的程序文件中創(chuàng)建函數(shù)。 function y = myfunction(x) y = x.^2 + x;將鍵入要運行的代碼替換為允許運行函數(shù)的表達式。 y = myfunction(1:10)也可以在同一行輸入多條命令,例如 x = 1:10; y = myfunction(x)對于更復雜的多行命令,可創(chuàng)建單獨的腳本文件,然后運行腳本。 三、函數(shù)類型(1)文件中的*部函數(shù)和嵌套函數(shù) 程序文件可以包含多個函數(shù)。*部和嵌套函數(shù)可用于將程序分為更小的任務,使讀取和維護代碼變得更容易。 在僅包含函數(shù)定義的函數(shù)文件中,*部函數(shù)可以任意順序出現(xiàn)在文件中主函數(shù)的后面。在包含命令和函數(shù)定義的腳本文件中,*部函數(shù)必須位于文件末尾。 例如,創(chuàng)建一個名為?myfunction.m?的函數(shù)文件,其中包含主函數(shù)?myfunction?以及兩個*部函數(shù)?squareMe?和?doubleMe: 可以從命令行或另一程序文件中調(diào)用主函數(shù),但*部函數(shù)僅適用于?myfunction,可以看到主函數(shù)顯示黃色。 尤其需要注意的是:*部函數(shù)和嵌套函數(shù)在文件中的位置。 (2)子文件中的私有函數(shù): 與*部或嵌套函數(shù)一樣,私有函數(shù)僅供特定位置的函數(shù)訪問。但是,私有函數(shù)與可以調(diào)用它們的函數(shù)不在同一個文件中。它們位于名稱為?private?的子文件夾中。僅?private?文件夾緊鄰的上一級文件夾內(nèi)的函數(shù)可使用私有函數(shù)。使用私有函數(shù)將代碼分割為不同的文件,或在多個相關函數(shù)間共享代碼。 (3)無需創(chuàng)建文件的匿名函數(shù): 只要函數(shù)包含一個語句,匿名函數(shù)即允許您定義該函數(shù)而不必創(chuàng)建程序文件。匿名函數(shù)通常用于定義數(shù)學表達式,然后使用 MATLAB??功能函數(shù)(即接受函數(shù)句柄用作輸入的函數(shù))基于某個值范圍計算該表達式。 例如,以下語句為匿名函數(shù)創(chuàng)建名稱為?s?的函數(shù)句柄: s = @(x) sin(1./x); 該函數(shù)具有一個輸入?x。@?運算符創(chuàng)建函數(shù)句柄。 可以使用該函數(shù)句柄針對特定值計算函數(shù),例如 也可以將該函數(shù)句柄傳遞給在某一值范圍內(nèi)計算的函數(shù),例如?? |
今日新聞 |
推薦新聞 |
專題文章 |
CopyRight 2018-2019 實驗室設備網(wǎng) 版權所有 |