標籤:

為什麼很多計算機專業碩士生論文編程都是用MATLAB做的,僅僅是科學計算方面的優勢嗎?


謝邀。

70%的演算法Matlab已經寫好了,另外30%的演算法只要兩三百行就能完成,而且性能和C++/Java寫的相差無幾(前提是你會設計出更高效的Matlab程序),外加一流方便的visualization和debug工具。帶來的結果是效率的成數量級的提升。Researcher更能專註於演算法本身的設計,而不是演算法的實現過程。

比如在Computer Vision演算法開發中,你可以輕易地在Matlab讀取矩陣的當前值,而Matlab自帶的矩陣運算又完全不比OpenCV的Blas和Lapack慢,還不用跳很多C++語法的大坑。


Matlab代碼特別適合原型開發。理由:

1. 代碼編寫方便。因為你(幾乎)不需要考慮數據類型,(幾乎)不需要考慮內存分配,寫出來的代碼和偽代碼相似度很高,你的思維可以集中在演算法上而非語法上。容易排除演算法邏輯錯誤

2. Matlab程序Debug特別方便:一方面是可視化方便,程序斷點停下後可以在workspace里各種看數據,甚至另跑函數、畫圖而不影響Debug的進程;另一方面是程序改寫後重跑不需要重新編譯,還能局部運行,這對於大型程序的debug簡直是節省了無數時間

3. 原型測試完畢後,Matlab代碼轉成C/C++(還算)方便。用Eigen之類矩陣運算庫可以比較完美地替換Matlab里的矩陣功能,而且(在我的經驗里)速度快10倍左右

比較大的程序,如果能用Matlab先寫一遍,debug通過後再轉到C/C++上,比直接C/C++開發要快很多。


因為 師兄的/師姐的/網上找的 代碼是Matlab的。


因為它有python沒法比的可視化,debug能力和內置演算法。

什麼,你說的是C/java?研究演算法可不是做工程。


快速實現核心演算法,簡單高效!


推薦閱讀:

為什麼同樣的C++函數,在matlab混合編程中調用,和直接在VS2010中調用,計算結果不一致?
用於數學建模 安裝matlab 2014 需要安裝哪些組件?
matlab的floor函數是否有bug?

TAG:MATLAB | 碩士 |