- MATLAB程序設計及應用
- 郭斯羽等編著
- 1132字
- 2022-05-06 19:27:44
1.2.2 缺點
盡管MATLAB具有上述優點,但是其缺點也是較為明顯的。
1. 價格昂貴
作為一款功能強大的數學計算軟件,MATLAB的價格十分昂貴。實際上,除了MATLAB核心軟件,MATLAB的多數工具箱都是單獨計價的。如果要將這些工具箱全部配齊,整個軟件的價格將達到十余萬甚至數十萬元人民幣。這一昂貴的價格在相當程度上限制了MATLAB的使用。在各種開源軟件不斷涌現的今天,MATLAB昂貴的價格已經催生出了若干功能類似的其他軟件。有些開源工具在部分功能和計算效率上都已經達到了與MATLAB比高低的程度,也因此逐步擴大了它們在數學計算方面的流行度。
2. 體積龐大,對計算機性能要求高
隨著MATLAB功能的不斷增加,工具箱數量的不斷增多,其完整安裝所需的空間也越來越大。以MATLAB R2012a為例,其完整安裝約需要5.7GB的硬盤空間。同時,MATLAB對于計算機的CPU和內存的要求也隨著版本的提高而提高。因此,如果僅僅希望以MATLAB作為應用程序的后臺計算引擎,上述的硬件開銷一般都是偏大的。
3. 在某些特定應用領域中的表現不及其他軟件
MATLAB的優勢主要體現在以矩陣計算為核心的科學計算與仿真上,但是在一些相對更新的應用領域,由于其基礎架構的問題,因此表現不見得是最佳的。例如,在大數據處理和深度學習方面,MATLAB盡管在最新的版本中也提供了工具箱支持,但是其功能和性能相比于Python語言及相關的第三方工具包或應用框架等還有一些差距。在這些領域的研究者中,其使用者所占的比例也較小。
4. 語言本身的計算效率存在不足
一般而言,MATLAB內置的計算函數的效率都足夠高效,但是對于利用MATLAB進行開發的程序員來說,如果需要提高所編寫的程序的效率,就需要掌握更多的技巧。
在MATLAB的較早期版本中,影響程序效率的一個典型因素,就是利用循環的方式來對數組中的每個元素進行處理。由于在MATLAB中,哪怕是基本的算術運算,也會被解釋為對MATLAB相應內置函數的一次調用,因此,在利用循環逐元素進行操作時,函數調用帶來的計算開銷將遠大于這一計算本身的實際開銷,從而使得程序的運行速度顯著下降。因此在較早期的MATLAB版本中,如何利用矢量化技術來減少循環的數量,是提高程序效率的一個重要技巧,甚至在很多應用中,為了能夠利用矢量化技術帶來的高效率,往往使得代碼本身變得晦澀難懂,影響了程序的可讀性。盡管在較新的版本中,MathWorks公司已經極大地提升了MATLAB中循環的執行效率,但是這一問題仍然沒有得到解決。
此外,還有一種提高效率的方式,即使用MEX編程,利用C/C++語言來編寫對性能影響最為顯著的算法核心部分,把它編譯為MEX模塊后再在M函數中加以調用。不過這種方式一方面需要程序員熟悉C/C++編程,而且MEX模塊的調試并不是十分方便,另一方面也使得整個程序的組織結構顯得較為零散,不便于閱讀和迅速理解。
盡管存在上述缺點,MATLAB仍然以其高效的計算、便捷的交互、強大的可視化能力和眾多工具箱的有力支持,在科學研究與技術開發中扮演著重要的角色。
- 演進式架構(原書第2版)
- Qt 5 and OpenCV 4 Computer Vision Projects
- Design Principles for Process:driven Architectures Using Oracle BPM and SOA Suite 12c
- Getting Started with ResearchKit
- Implementing Cisco Networking Solutions
- 數據結構與算法分析(C++語言版)
- Salesforce Reporting and Dashboards
- 計算機應用基礎實踐教程
- Getting Started with Eclipse Juno
- 大話Java:程序設計從入門到精通
- 響應式Web設計:HTML5和CSS3實戰(第2版)
- Principles of Strategic Data Science
- Xamarin Blueprints
- Python Deep Learning
- Practical Predictive Analytics