如何規范地編寫一個MATLAB函數文件


在matlab中,M文件分為腳本文件和函數文件。如果M文件的第一個可執行語句以function開頭,那這個M文件就是函數文件。函數文件內定義的變量為局部變量,只在函數文件內部起作用,當函數文件執行完后,這些內部變量將被清除。

本文介紹如何規范地編寫一個函數文件。

通常,函數文件由函數聲明行、H1行、在線幫助文本區、編寫和修改記錄、函數主體等幾個部分組成。格式如下:

function 輸出形參表 = 函數名(輸入形參表)

在線幫助文本區,其中第一行為H1行

編寫和修改記錄

函數主體


函數聲明行

  1. 由關鍵字function引導,指明這是一個函數文件,並定義函數名、輸入參數和輸出參數。
  2. 函數名應當與文件名一致(保存函數文件時會默認以函數名作為文件名予以保存),如果兩者不一致,MATLAB將以文件名為准,以后調用時使用文件名調用該函數。
  3. 在腳本文件中編寫函數時,需以end結尾;獨立的函數文件不需以end結尾。
  4. MATLAB中的函數文件名必須以字母開頭,可以是字母、下划線、數字的任意組合,但不可以超過31個字符。

H1行

  1. 緊隨函數聲明行之后的以“%”開頭的第一注釋行。
  2. H1行包括大寫的函數名和函數功能簡要描述,采用lookfor命令可在命令行窗口顯示H1行的信息。
  3. 建議在編寫H1注釋行時,盡量采用英文表述,這是為了之后的使用過程中關鍵詞檢索的方便。

在線幫助文本區

  1. 包括H1行以及H1行之后的連續的以“%”開頭的注釋行。
  2. 通常包括函數輸入變量和輸出變量的含義以及調用說明。
  3. 采用help命令可在命令行窗口顯示在線幫助文本區的信息。

編寫和修改記錄

  1. 與在線幫助文本區以一個空行相隔。
  2. 該行以“%”開頭,記錄了編寫及修改函數文件的作者、日期、版本等內容,以方便后來的使用查詢或修改。

函數主體

  1. 應與編寫和修改記錄以一個空行相隔。
  2. 這部分內容包括了所有實現該函數文件功能的MATLAB指令。

例:完整的函數文件示范。

 1 function spir_len = spirallength(d, n, lcolor)
 2 % SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area 
 3 % 輸入參數: 
 4 %   d: 螺旋的旋距
 5 %   n: 螺旋的圈數
 6 %   lcolor:畫圖線的顏色
 7 % 輸出參數:
 8 %   spir_len:螺旋的周長
 9 % 調用說明:
10 %   spirallength(d,n):以參數d,n畫螺旋線,螺旋線默認為藍色
11 %   spirallength(d,n,lcolor):以參數d,n,lcolor畫螺旋線
12 %   spir_len = spirallength(d,n):計算螺旋線的周長,並以藍色填充螺旋線
13 %   spir_len = spirallength(d,n,lcolor):計算螺旋線的周長,並以lcolor顏色填充螺旋線
14  
15 % 版本號V1.0,編寫於1999年9月9號,修改於1999年9月10號,作者:亞索
16  
17 if nargin > 3
18     error('輸入變量過多!');
19 elseif nargin == 2
20     lcolor = 'b'; % 默認情況下為藍色
21 end
22  
23 j = sqrt(-1); 
24 phi = 0 : pi/1000 : n*2*pi; 
25 amp = 0 : d/2000 : n*d; 
26 spir = amp .* exp(j*phi); 
27  
28 if nargout == 1
29     spir_len = sum(abs(diff(spir))); 
30     fill(real(spir), imag(spir), lcolor); 
31 elseif nargout == 0
32     plot(spir, lcolor); 
33 else
34     error('輸出變量過多!'); 
35 end
36  
37 axis('square'); 

在命令行窗口中輸入:

1 spirallength(0.25,4)

輸出結果如圖:

 

 

 在命令行窗口輸入:

1 spir_len = spirallength(0.25,4)

輸出的結果不僅包括上圖,而且還在命令行窗口顯示spir_len=12.6542。


函數參數指令集

  • nargin:表示一個變量,指定調用函數所帶參數的個數
  • nargout:表示一個變量,指定調用函數所返回的參數的個數

本文完。

 

 

1.編寫test函數

 1 function [o,p,q,r] = test( n )%%%%%%%%%%%%%%%編寫function test函數
 2 
 3 %%%%%%%%%%%%%%%%%%%%%%test函數變量為n,返回值為o,p,q,r
 4 
 5 o= 0;
 6 p=0;
 7 q=6;
 8 r=128;
 9 for i = 1:n
10     o = o + i;
11     p=p+1;
12     q=q.*n
13     r=r.^0.2
14     
15 
16 end

 

2.調用tset函數的main函數

1 clear all;
2 clear clc;
3 [a,b,q,r]= test(10)%%%%%%%%%%%%%%%%%%調用test函數n=10,a,b,q,r四個為n=10的test函數的返回值!

 

 

 

 

 

參考網址:(如何規范地編寫一個MATLAB函數文件)https://blog.csdn.net/qq_15971883/article/details/82884353

        (matlab中如何定義函數)https://jingyan.baidu.com/article/4e5b3e1954ed9c91901e240b.html

     (matlab基礎:函數FUNCTION編寫)https://blog.csdn.net/qq_15971883/article/details/82884353

     (Matlab創建文件、function文件和函數調用)https://blog.csdn.net/Netceor/article/details/95063340?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param#%E4%B8%89%E3%80%81%E5%8C%BF%E5%90%8D%E5%87%BD%E6%95%B0

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM