標籤:

如何自學Matlab

在公眾號開通「我想提問」的功能以來,幾個朋友問我如何自學Matlab。今天我分享一下我的自學經驗。本科學的是機械,並不是編程科班出身,自學Matlab的路子有點野,不專業的地方,勞煩指正。因為Matlab的應用範圍很廣,所以我所分享的,可能很難會滿足每一個朋友的需求。

很早之前,我提到過,學習編程一定要帶著需求去學,一定要清楚自己想實現什麼功能,而盲目的去讀工具書,是一個很不切實際並且很容易喪失學習積極性的一種方法。如果一些朋友想學習Matlab但是暫時還沒有很具體的需求,不介意的話,可以任意挑選以下一篇帖子,去實現帖子中的功能。

1. Matlab讀取pdf文件:別讓低質量的忙碌製造一個努力的幻想

2. Matlab網路爬蟲(靜態頁面):Matlab還能看得懂上海房價?

3. Matlab網路爬蟲(動態頁面):為什麼說Matlab不適合網路爬蟲

4. Matlab與Excel的交互:如何在excel中畫畫

5. Matlab製作動圖Gif:Matlab如何動態呈現計算結果

6. Matlab提取曲線原數據:Matlab如何從曲線圖中提取原始數據

7. Matlab處理dbc文件:Matlab如何實現CAN Matrix的dbc與excel之間的一鍵轉換

8. Matlab圖像處理:程序員如何討好女朋友

9. Matlab製作GUI工具:如何通過Matlab做學習界面

10. Matlab加密:【抽獎貼】誰的人生沒有過一兩次需要強制關閉的時刻

11. Matlab自動生成word文檔:【一個被斃掉的作品】如何評估一隻股票的買點

12. Matlab製作音樂:Matlab如何演奏周杰倫的「晴天」

13. Matlab一鍵生成Simulink模型架構:Maltab如何根據html軟體報告快速復原模型架構

14. Matlab搭建電池模型:Simulink如何搭建電池模型

15. Matlab批量修改Simulink模型: Matlab如何大規模修改Simulink模型

在開始自學Matlab之前,首先需要知道如何去使用這款軟體,命令行窗口是幹嘛的,什麼是m文件,什麼是function,如何運行程序,如何設置路徑,等等。所有阻礙你在屏幕上實現1+1=2的問題,在我看來就是軟體的使用問題。使用問題很容易解決,你可以找知道的朋友教一下,或者是網上搜索,或者是官方教程。最多不超過1天,如果超過1天還不知道怎麼用Matlab的朋友,請私信告訴我,手把手教你。

我的自學過程,大致分為三個階段:

  • 數值計算
  • 文本處理
  • 專業應用

1. 數值計算

很多人對Matlab的理解不深,認為Matlab只是個高級計算器。那是因為很多人僅僅只是經歷了數值計算這一階段,只會把它當做高級計算器來用。

這一階段,其實更多挑戰的是自己對問題的理解以及所建立的數學模型。在建立完數學模型之後,剩下的就是將數學模型通過Matlab表達出來。

如果有《MATLAB R2014a完全自學一本通》這本工具書的朋友,可以翻閱一下:

1) 簡單的數值計算,可以參考章節2.3.1算術運算符

2) 數學模型中涉及線性代數的問題,可以參考章節3數組與矩陣

3) 涉及到迭代運算的問題,可以參考章節4.3 Matlab的控制流,其中涉及到循環結構

4) 如果頻繁調用自定義函數,可以參考章節4.5.2,將自定義函數做成function文件的形式

5) 在計算出現錯誤的情況下,可以參考章節4.7 Matlab程序的調試

6) 此外,希望對計算結果進行可視化處理,可以參考章節5.2 二維圖繪製

以上幾點內容都是針對基礎的數學計算及相應的可視化處理,如果研究方向更深,比如概率統計,微積分,非線性優化,線性擬合等等,這本工具書中都有相應的介紹。不過我相信,如果都研究到這麼深層次的問題了,相信使用Matlab處理數值計算已經遊刃有餘了。

在這一部分,需要注意的事,千萬不要大規模去使用循環,能通過矩陣計算解決就千萬別用循環。循環,一方面在計算效率上效果不好,另一方面不利於自身的編程進步,會有思考惰性。

2) 文本處理

在進入這一階段之前,我其實並沒有特別關注過數據類型這方面的問題。不過在文本處理的過程中,會碰到各式各樣因為數據類型不一致而產生的Bug。

在這一階段,基本上已經可以脫離工具書或是官方手冊了,如果碰到相關的問題或者是需求,基本上都是能夠通過網路關鍵詞搜索找到答案。

1) 常用的幾種數據類型,比如字元串,元胞,結構體等等,可以參考章節2.1數據類型

2) 常用的幾種字元串處理,比如字元串查找、替換、組合等等,可以參考章節2.4 字元串處理函數

3) 常用的幾種功能,比如文件選取,可以參考章節18.2 打開和關閉文件,讀取txt等文本文件,可以參考18.5 讀寫文本文件

文本處理這個階段,應用範圍相對就比較廣,比如網路爬蟲關鍵信息,dbc CAN網路文件的處理等等,能夠很大程度上實現各式各樣的需求

3) 專業應用

在專業應用階段,就是因人而異了,根據不同的專業都有相應的工具包,能夠涵蓋模擬、神經元演算法、圖像處理、信號處理,AutoSAR等等。這一階段給我的感覺是,如果是比較冷門比較不常見的問題,通過官方的help能夠更快速更全面的獲取你所需要的答案。而比較初級普遍的問題,網路關鍵詞搜索能夠快速找到答案。所以通常情況下,我會先進行一次網路關鍵詞搜索,如果沒能找到所需要的答案,我會馬上去help上搜索關鍵詞。

整篇寫下來,感覺有點像工具書劃重點的味道,不過還是希望這篇帖子有它存在的意義。如果有更細節的問題,或者是所寫的文字有你不認同的地方,希望能夠告訴我。

以上

如果有興趣,可以關注我的微信公眾號「打浦橋程序員」,謝謝

推薦閱讀:

Matlab如何製作滑鼠精靈
即將出版!《數學建模與數學實驗》書稿目錄
Matlab|Matlab二維繪圖
漫談Simulink:什麼是代數環?
研究電力電子化電力系統穩定性的利器——阻抗法

TAG:MATLAB |