1. 向量化。
盡量少用for循環。
2. 循環豎着走比橫着走快。
3. 內置函數也有優化的空間
不少內置函數都有大量的error check。直接用profiler找出真正干活的。
不少內置函數在網上都有人提供了更快的版本的,當然功能弱一些,正好符合提速的需求。
4. 盡量給不要修改函數的變量
利用copy on write的特點,丟進函數的變量能不對其修改就不要修改。
5. 少使用Matlab進行類似數據庫的操作
matlab就是個高級計算器,不要拿干來處理文件,往數據庫里塞數據這種活。eval, object之類的東西能別碰就別碰,盡量保持着every is an array of double的模式。
6. 預先規定好矩陣的維度
和C語言一個道理,修改矩陣的維度會使Matlab分配一個新的內存空間來存儲新的矩陣並進行賦值操作。頻繁地改變size就會使運算變慢。
7. 當矩陣中有很多0時,使用sparse(稀疏矩陣)
也就是軟基中的三元矩陣?
8. 多次使用的除法數據存儲下來
因為除法的開銷比乘法的大許多。