matlab 代码风格,10 Matlab 函数与代码风格
函數
函數,本質上是一種可復用的代碼。現實生活中,有大量的工作都是重復的,變化的只是其中一小部分。
舉個例子,假如要你計算 “ 1+2+3+4+5+6+7+8+9+10 ”,最簡單的方法當然是直接在Matlab命令行中敲出這個式子。
這樣的方法沒有復用性,下次計算還需要重新輸入一遍這個式子。如果,需要計算100個,1000個或更多的數字之和,就沒有辦法這樣輸入了。
顯然,這是一個重復的工作,變化的只是終點(如累加到100)。一個可以復用的程序代碼是只要告訴計算機終點,它就自動完成這樣的累加運算。函數就能實現這樣的一個功能。
還用剛才的例子:用術語 “ 參數 ” 來指代 “ 終點 ”,術語 “ 返回值 ” 指代最終的結果。生活經驗告訴我們,參數與返回值都可以有多個。
現在,我們看看在Matlab中怎樣實現函數(也叫聲明一個函數)。還用這個例子,先把這個函數的代碼寫出來,然后逐條解釋。
1 function result = sum ( n )
2 result = 0;
3 for i = 1:n
4 result = result + i;
5 end
6 return;
第一行中,有一個關鍵字 function, 它的作用是聲明這之后一直到 return 這部分的代碼都是屬于這個函數的代碼塊。
result 是這個函數要返回的值,這個函數里面,累加所得到的結果由 result 這個變量保存。
sum 是這個函數的名字,n 是函數的參數。參數的細解釋起來也比較復雜,我們實用至上,把它理解成一個可復用的代碼中需要變化的內容就可以了。
例如,每次都要求從1到某個數的累加和,變化的就是這個數,每次只需要告訴程序從1累加到幾就可以了。這個值通過參數傳遞給函數。
在調用函數的時候,只需要在命令行中原樣輸入函數名和參數就可以(需要函數腳本在 Matlab 的工作目錄下)。
當然,一個函數的返回值可以有多個,參數也可以有多個。如果一個函數的返回值有多個,則需要用中括號將返回值括起來。多個不同參數,用逗號隔開即可。
例如,將上面的函數改個功能,既能得到累加的值,也能得到累乘的結果,還可以設定從 1 到 n 的步長。顯然,這里函數返回兩個值,分別為累加值和累乘積。參數也有兩個,分別為 n 和步長。因此,第一行就可以改寫成:
function [ result_sum, result_multi ] = sum_multi ( n,step )
請注意,調用函數的時候需要原樣調用。顧名思義,這是要求在調用函數的時候要按函數定義的形式調用。雖然是原樣調用,但是返回值變量,我們可以自己定義。例如調用 sum_multi 函數應該在命令行中輸入:
[ result1, result2 ] = sum_multi ( 10, 2 )
上一條命令的意思是,調用sum_multi函數,其中,n = 10, step = 2. 意思就是從1到10,每隔兩個數字取值。得到的累加結果保存到變量 result1中,而累乘得到的結果保存到 result2 中。
那如果調用這個函數,但是不想要累加的結果,我只想要這個函數返回的累乘結果。應該怎么辦?可以用~代替你不想要的返回值。這樣調用方式就變成了:
[ ~, result ] = sum_multi ( 10, 2 )
可以把最后一行的 return 理解成一個標記符,它標志著函數的代碼塊結束。它也定義了一些變量的作用范圍(也稱作用域)。
在這里順便提一下變量的作用域。
一般說來,在一個程序的腳本文件中,不允許有重復的變量名。但如果一個變量的作用范圍是有限的,那么在超出這個限制的范圍內,變量名就可以重復了。
這個變量的作用范圍就是一個變量的作用域。它的規則也有比較復雜的情形。仍然實用至上,到目前為止,我們只需要知道,在函數中,變量的作用范圍是從 function 到 return 中間。
大家可以自己嘗試著將函數 sum_multi 寫出來并試著用不同的方式調用它。
代碼風格
有時候,自己寫了一段代碼,回過頭再來看,發現居然看不懂了。為了交流方便,也為了方便代碼維護,就要求大家遵循一定的規范,使得大家都能讀懂代碼。這些規則,有很多版本。這里只介紹幾條核心要求:
勤用注釋
注釋包括程序功能、函數功能、用法的說明,也包括對變量名、關鍵代碼行的注釋。
基本的原則是為了維護方便,也為了讓別人能看明白你寫的代碼。
使用 % 符號在代碼中添加注釋,可以在程序的任何位置中出現注釋。
% 求矩陣元素中的和
function y = sum ( x ) % y是函數的返回值,返回一個整數
上例中,第一個注釋是解釋這個函數是干什么的。第二行里面的注釋是簡單說明了返回值 y 的數據類型。
盡可能地將程序寫得靈活,方便改動。
這意味著寫一個程序要盡可能地考慮到不同的應用場景,或者是不同的設備環境。當然,這個要求相對較高,可以在慢慢熟練以后逐漸熟悉。
縮進
雖然 matlab 沒有像 python 一樣強制要求縮進。但是為了讀起來方便,要善用縮進讓代碼可讀性更強。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的matlab 代码风格,10 Matlab 函数与代码风格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 雷达图函数,R语言之可视化
- 下一篇: 空间刚架matlab_Matlab绘制空