如何成為程式設計高手對理論的掌握並不代表對知識的真正理解。對於一些所謂高深的理論都可以自己編寫程式來檢驗對其理解的程度。我的經驗是:只有你把程式流暢地寫出來,才是真正意義上對知識理解通透了。比如,我在大三學電力系統分析的時候,就自己用Matlab語言編寫了牛—拉法求潮流的程式,計算暫態穩定的簡單程式,計算髮電機短路電流的程式等。自然地這些專業課程都學得不錯。 Matlab是一門優秀的程式語言,在歐美非常普及。選擇一門順手的程式語言可以讓你在學習和工作中事倍功半。Matlab是一種語言因為它可以用作程式設計,也是一種軟體因為它自帶的工具箱具有類似軟體前臺的GUI介面以及能夠輕鬆實現人機通訊功能。在學習Matlab程式設計之前,需要對其有一個基本的瞭解:
(1) 資料處理
能對資料進行計算、分析和挖掘,資料處理函式功能強大,命令簡潔;
(2) 軟體工具箱
各式各樣的工具箱,包括神經網路工具箱、Simulink工具箱(雖然Simulink從底層開發出來的,但是我們認為也是工具箱的一種)、模糊工具箱、數字影象處理工具箱和金融工具箱等;
(3) 精緻繪圖
Matlab通過“set”命令重設圖形的控制代碼屬性,可繪製精準而美觀的圖形;
(4) 動畫實現
Matlab可以進行實時動畫、電影動畫和AVI視訊製作,並能在動畫中新增*.WAVE格式的音訊;
(5) 與軟硬體通訊
Matlab介面函式可以實現與軟體(比如C)和硬體(比如電子示波器)通訊;
(6) 平面設計
與全球最頂尖的平面設計軟體之一Adobe Photoshop聯袂使用,傳達震撼的視覺設計效果;
(7) 遊戲開發 利用Matlab語言可以開發一整套的遊戲,比如開發32關的推箱子游戲。 根據我對Matlab將近7年的學習經驗,學習Matlab程式設計就像讀一本書,剛開始讀時感覺這本書很薄,內容淺顯,容易上手,似乎感覺Matlab語言是最容易學會最簡單的一門程式語言;繼續讀下去感覺這本書其實很厚。初學Matlab程式設計過程中經常會遇到五大困惑:
其一,函式指令掌握太少,寫不出簡潔的程式甚至正確有效的程式碼也寫不出;
初學者閱讀一個Matlab程式設計高手寫出的一個相對複雜的程式,會發現不但整篇程式的思路難以理解,而且會碰見很多陌生的命令,就像一篇英文閱讀理解有很多單詞都不認識。自己動手寫程式想表達的意思表達不出來,力不從心。
其二,不能掌握Matlab函式複雜的語法格式;相比VB和C而言,Matlab
語法格式比較複雜。語法格式不正確程式就不能執行,同一個命令有很多種語法格式。格式不同,程式輸出的結果就大相逕庭。比如使用“streamribbon”命令建立三維流帶圖,其語法格式為streamribbon(x,y,z,u,v,w,sx,sy,sz那麼向量x,y,z,u,v,w,sx,sy,sz分別代表什麼意義,各向量之間滿足什麼樣的長度關係都必須真真切切地理解,否則因為不能鍵入正確的向量而不能畫出三維流帶圖。
其三,能套用別人程式自己卻絲毫沒有程式開發能力;比如在神經網路工具
箱中,各種建立、學習和訓練網路的函式命令眾多,語法格式複雜,套用別人已經編好的神經網路程式比較簡單,但是如果自己對照各個函式的用法書寫完整的神經網路程式卻不是簡單的事,因為你沒有從本質上理解這些命令。這就是說,你只能模仿別人的程式,卻不能觸類旁通自己開發程式。
其四,不能準確全面地理解指令實現的功能;比如在Matlab中實現排序功
能的命令是“sort”,而在C語言中如果想實現排序,那就必須依據“冒泡法”原理編寫一小段的程式實現排序;雖然Matlab命令用起來比C簡便,但是如果對“sort”命令原理不瞭解,就不能知曉“sort”是實現升序排列還是降序排列,對於矩陣是按行排序還是按列排序。所以當我們使用將繁瑣的原理封裝在Matlab裡的命令時,如果不熟悉該命令的原理,那麼使用時至少要在命令視窗中鍵入該命令以便試探它的用法。
其五,函式的引數不知道如何調整。比如使用命令“imadjust”對輪廓不明晰的數字影象進行處理時,處理過的影象也許輪廓分明,但是很多都是偽輪廓,已經改變了原始影象的品質,所以在使用該命令時一定要注意拿捏好校正因子的大小。又如在編寫BP網路源程式過程中,網路始終無法收斂且找不出原因,很多人都會懷疑是不是網路的拓撲結構設計有問題,其實很多情況下癥結都是出在網路學習速率引數的大小上,只要將引數調小一點,網路也許就會立即收斂。當你不知道引數的具體取值時,不妨多除錯幾次。 最後通過長時間紮實的學習,對Matlab主程式命令和常用的一二個工具箱已經基本掌握,寫起程式來才會思路湧湧而至,得心應手,輕車熟路,感覺這本書其實還是比較薄。由於MATLAB函式命令豐富,完全掌握沒有必要也很難,只要掌握經常用到的命令就可以了。科學研究表明,只要掌握知識的60%就可以運用了。對於碰見的一些生僻的函式用法時,可以查詢Matlab help命令尋求幫助或者身邊備用一本Matlab函式詞典。