為什麼說 MATLAB 快?
它無非數學庫用了 MKL,還能快到天上去?其它語言也不是不可以用 MKL。
即使它最近引入了 JIT,還能比世界上最快的 JIT V8 快?為什麼說 MATLAB 快呢?是因為 Octave 太慢了嗎?
貌似第一次聽說這個說法,題主是從哪聽說的?根據我的經驗,MATLAB的運算速度和編譯型語言沒法比,在腳本語言裡面,算是中等吧。值錢的並不是MATLAB的運算速度,而是它自帶的大量函數。
應該指的是某些任務編程速度比較快吧,因為自帶了大量的函數。
運算速度嘛, 得看編程技巧了。一般來說,轉化矩陣運算會比較快, 最近幾年,JIT技術優化了,循環速度也加快了,具體是否比矩陣速度快,得做實驗來確定。
當然, 運算速度不能和編譯型語言比,這是不公平的比較。MATLAB就是用在快速建模上的。 如果一定要求速度很快, 有個大殺器:mex。你用C語言之類的編譯型語言編寫性能瓶頸函數,然後編譯成mex文件,供MATLAB使用。如果這樣速度還不夠快,那就不是語言層面上的了,也許你該看看《演算法導論》,優化一下你程序的時間複雜度了。評論那個說的有道理。MATLAB的快個人認為在於開發快(人能快速寫出一個能跑的程序)而不是運行快(計算機快速給出結果)。
我覺得是寫法快,因為有很多封裝好的庫,所以說寫起來快。。至於運行的話。。
天梯圖說明了一切(圖片來自The Julia Language)
Matlab中被優化過的一些matrix computation確實是很快(甚至比c還快,雖然也是c實現的,這一部分絕對黑科技),但整體來說大部分的演算法算是比較慢的,甚至你可以輕鬆(較為輕鬆)寫出比它原有演算法要快的m file。你可以下個Tom Minka寫的lightspeed matlab toolbox tminka/lightspeed 輕鬆提升matlab速度
matlab運行矩陣運算的時候,偷偷滴使用了Intel 矢量運算。。。。
所以佔便宜了
僅在在向量運算上有優勢,別的都相對較慢
確實比octave快很多啊。開源大法當然好,但是使用體驗和matlab還是沒得比。
另外即使是用mkl,matlab開發者也許也進行了優化,所以至少在矩陣運算和解方程方面,確實快啊!
好奇怪,實際上Matlab速度很慢,尤其是幾年將Matlab核心換成Java之後。固然,近幾年Java速度越來越快,Matlab表現也有所優化了。
推薦閱讀:
※把大圖裡面的漢字分割成每一個小圖?
※simulink中如何輸出兩個上升沿之間的時間差?或記住某一時刻。用s函數么。請見下面詳細描述,謝謝
※matlab中的randn函數如何重複前一次的隨機數?
※Matlab求解方程組?
※Python有沒有類似Matlab中xlswrite這種寫入數據到Excel的方式?