摘 要: 本文對MATLAB的編程進行了教學方面的討論,提出了教學過程中的需要注意的問題。并且通過對MATLAB編程的討論,得出MATLAB具有繪圖功能強、命令簡單與效率高的特色,能夠使學生激發學習興趣并且提高課堂教學效果的結論。
關鍵詞: MATLAB編程 繪圖 數據分析
1.引言
MATLAB是一種廣泛應用于工程計算及數值分析領域的新型高級語言,它以矩陣為數據操作基本單位,使得矩陣運算變得非常簡潔、方便、高效。在各高等院校,MATLAB已經成為線性代數、自動控制理論、數字信號處理、時間序列分析、圖像處理等許多課程的基本教學工具,成為大學生、研究生必須掌握的編程語言[1]。
MATLAB已經占據了數值軟件市場的主導地位,已經發展成為多學科多種工作平臺的功能強大的數值計算及數值分析軟件,被譽為“巨人肩上的工具”[2]。
在MATLAB教學過程中,我們發現初學者對MATLAB安裝和三種結構編程理解不是很透,容易出錯。很多教材和參考資料對這些方面的介紹也不是很詳細,而掌握這兩個方面對后續的學習和運用特別重要。
學生對上述兩個方面理解透徹后,就可以從繪圖和數據分析兩個方面來體會MATLAB軟件的高效性和強的繪圖能力。
2.MATLAB軟件的安裝
在教學中使用MATLAB 7.0,由于MATLAB 2007版本和MATLAB 2009版本所需要的系統資源較大,而MATLAB 7.0安裝文件在1G左右,因此通常使用MATLAB 7.0進行教學。在安裝中特別要注意MATLAB 7.0與電腦CPU的廠家有密切聯系,即如果CPU是Intel公司的,那么與MATLAB 7.0是兼容的,但是如果CPU是AMD公司的,那么需要在安裝的時候修改環境變量,這一點在教學中需提醒學生注意。
3.MATLAB的編程教學
3.1矩陣
MATLAB,即“矩陣實驗室”,它是以矩陣為基本運算單元。MATLAB的強大功能之一體現在能直接處理向量或矩陣。當然首要任務是輸入待處理的向量或矩陣。不論是任何矩陣(向量),我們都可以直接按行方式輸入每個元素:同一行中的元素用逗號(,)或者用空格符來分隔,且空格個數不限;不同的行用分號(;)分隔。所有元素處于一方括號([ ])內;當矩陣是多維(三維以上),且方括號內的元素是維數較低的矩陣時,會有多重的方括號。
如:
矩陣是MATLAB最基本也是最簡單的部分。
3.2MATLAB的三種結構編程
MATLAB程序設計既有傳統高級語言的特征,又有自己獨特的特點。編程總是由簡單到復雜,要掌握編程語言,需先練習編程的順序、選擇、循環三種結構[2]。
首先是順序結構。學生在學習MATLAB語言之前有C語言的基礎,在實際的教學過程中,必須提醒學生,MATLAB語言與C語言的一個顯著的區別是,MATLAB語言是順序執行的,在編程中,即使同一個程序使用相同的變量,這個變量也可以進行幾次賦值,但是不推薦使用。
其次是選擇結構。MATLAB的選擇結構由if語句構成,最簡單的If-Else-End結構是:
if expression
{commands}
end
如果在表達式中的所有元素為真(非零),那么就執行if和end語言之間的{commands}。對于if語句,與其搭配的是elseif語句,注意elseif之間沒有空格,這一點在教學中需提醒學生注意。
最后是循環結構。MATLAB的循環結構使用for語句或者while語句。for循環允許一組命令以固定的和預定的次數重復。for循環的一般形式是:
forx=array
{commands}
End
在for和end語句之間的{commands}按數組中的每一列執行一次。
在for語句的使用中,注意對循環變量的步進值的確定,例如語句for i=0∶0.1∶1,就是指變量i的步進值是0.1,即i的取值是[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]。
與for循環以固定次數求一組命令的值相反,while循環以不定的次數求一組語句的值。while循環的一般形式是:
while expression
{commands}
end
只要在表達式里的所有元素為真,就執行while和end語句之間{commands}。
上述的順序、選擇和循環三種結構可以嵌套使用,例如循環語句常與選擇語句嵌套使用。
3.3MATLAB的繪圖功能
MATLAB另一個重要特色就是MATLAB具有方便實用的繪圖功能。MATLAB有兩類繪圖命令,一類是直接對圖形句柄進行操作的底層繪圖命令,另一類是在底層命令的基礎上建立起來的高層繪圖命令。
MATLAB可以表達出數據的二維,三維,甚至四維的圖形。通過圖形的線型,立面,色彩,光線,視角等屬性的控制,可把數據的內在特征表現得淋漓盡致。
二維圖形比較簡單,用plot函數可以畫出。在此主要介紹三維圖形的繪圖。三維圖形分為曲線和曲面兩種,對于MATLAB中繪制三維圖形可以用“三維線圖”命令plot3函數,該函數允許用戶在三維空間內繪制三維圖形。除了plot3函數可以繪制三維圖形外,還有一些函數可以用來繪制三維線圖和曲面圖。能通過簡單的命令繪制三維曲面
圖1 MATLAB三維曲面圖
從圖1可以看出,曲面圖為彩色圖形,并且著色均勻,如果想要得到黑白圖形,只要把程序表達式改為:[x,y]=meshgrid(-3∶0.01∶3);z=-5/((x^2+1)+y*0);surf(x,y,z);運行此命令后,輸出圖形如圖2所示。可以看出,MATLAB繪圖簡便直觀,能夠激發學生的學習興趣,提高課堂教學效果。
圖2 MATLAB三維曲面圖
3.4MATLAB的數據分析功能
在科學計算中,MATLAB可以用于數據分析,例如MATLAB可以將數據進行統計處理,例如需要求出數據的平均值、方差、最大值、最小值等,只需要使用mean、std、max、min等函數,使用簡便并且非常快捷。例如:利用MATLAB提供的rand函數生成2000個符合均勻分布的隨機數,然后檢驗隨機數的性質:均值和標準方差;最大元素和最小元素;大于0.6的隨機數個數占總數的百分比。可以編寫程序如下:
X=rand(1,2000);Mean(X);std(X);max(X);min(X);e=size(find(x>0.6));f=e/2000.
4.結語
本文在此討論了MATLAB安裝教學和編程教學中有關矩陣、程序結構、畫圖、數據分析方面的注意問題。我們可以看出,MATLAB作為編程工具,避免了繁瑣的底層編程,從而可以把主要精力和時間花在科學研究和解決實際問題上。
參考文獻:
[1]劉衛國.MATLAB程序設計教程[M].中國水利水電出版社,2005.
[2]李光華,李早水.基于MATLAB編程的實驗教學中學生的探索思維研究[J].哈爾濱職業技術學院學報,2009:51-52.