方法/步驟
我的學習方法很簡單:Matlab是練出來的,而不是看出來的。很多人問我有沒有比較好的Matlab教材,目前學習這款軟體最好的教程是:10天學會,matlab教程,這套教程屬於影片教程,跟著影片學習就可以。
1.png
1、適當瞭解一些數值計算、數值分析以及最最佳化的理論
用Matlab的無非是做數值計算或者最最佳化,這也是Matlab的強項,Matlab有足夠多的工具箱解決這些問題。但是在使用這些工具箱之前,應該首先了解一些數值計算以及最最佳化的理論。這一點在程式碰到問題或者計算結果不理想的時候尤為重要。很多時候結果不理想並不是自己的理論出了問題,而是盲目或者錯誤使用Matlab的工具箱而導致的。比如我曾經做過一個單純形法的最佳化程式,但是結果總是不理想,這個時候就要返回到單純形法具體是一種什麼樣的演算法來考慮這個問題,最後發現是由於目標函式的某一部分十分平緩導致的。 當然更重要的是如果你不理解理論,很多問題根本不知道如何處理。有個學化學同學就曾問我一個程式怎麼寫,說matlab肯定可以完成的。瞭解清楚之後才明白原來他想做的就是一個受限最小二乘。但是他不懂得什麼是最小二乘(因為沒怎麼學過數學),當然面對這個問題無從下手。
2.png
2、理解Matlab中時間空間的轉化
這個問題沒有人強調,但我覺著蠻重要。這裡的關鍵點其實很簡單,就是儘量減少重複計算,哪怕是多項式複雜度以內的計算。重複計算的內容應該適時儲存到記憶體中,以後直接呼叫。一個程式可能會重複執行幾千次幾萬次,一點點的浪費時間都可能被放大很多。空間(記憶體)我們是可以擴充的,但是時間不是,所以絕大多數時候我們需要放棄空間,獲得時間上的迅捷。
3.png
3、形成良好的程式設計規範
我想幾乎所有學過程式設計的人都被這樣告誡過。比較好的是Matlab自帶的編輯器本身就可以自動縮排之類的,程式十分易讀。但是
方法/步驟
我的學習方法很簡單:Matlab是練出來的,而不是看出來的。很多人問我有沒有比較好的Matlab教材,目前學習這款軟體最好的教程是:10天學會,matlab教程,這套教程屬於影片教程,跟著影片學習就可以。
1.png
1、適當瞭解一些數值計算、數值分析以及最最佳化的理論
用Matlab的無非是做數值計算或者最最佳化,這也是Matlab的強項,Matlab有足夠多的工具箱解決這些問題。但是在使用這些工具箱之前,應該首先了解一些數值計算以及最最佳化的理論。這一點在程式碰到問題或者計算結果不理想的時候尤為重要。很多時候結果不理想並不是自己的理論出了問題,而是盲目或者錯誤使用Matlab的工具箱而導致的。比如我曾經做過一個單純形法的最佳化程式,但是結果總是不理想,這個時候就要返回到單純形法具體是一種什麼樣的演算法來考慮這個問題,最後發現是由於目標函式的某一部分十分平緩導致的。 當然更重要的是如果你不理解理論,很多問題根本不知道如何處理。有個學化學同學就曾問我一個程式怎麼寫,說matlab肯定可以完成的。瞭解清楚之後才明白原來他想做的就是一個受限最小二乘。但是他不懂得什麼是最小二乘(因為沒怎麼學過數學),當然面對這個問題無從下手。
2.png
2、理解Matlab中時間空間的轉化
這個問題沒有人強調,但我覺著蠻重要。這裡的關鍵點其實很簡單,就是儘量減少重複計算,哪怕是多項式複雜度以內的計算。重複計算的內容應該適時儲存到記憶體中,以後直接呼叫。一個程式可能會重複執行幾千次幾萬次,一點點的浪費時間都可能被放大很多。空間(記憶體)我們是可以擴充的,但是時間不是,所以絕大多數時候我們需要放棄空間,獲得時間上的迅捷。
3.png
3、形成良好的程式設計規範
我想幾乎所有學過程式設計的人都被這樣告誡過。比較好的是Matlab自帶的編輯器本身就可以自動縮排之類的,程式十分易讀。但是