科学计算:Python VS. MATLAB (1)----给我一个理由先
随着MATLAB工具箱的不断添加和完善,M语言也逐渐成为工程界的准通用标准语言,官网称:MATLAB - The Language Of Technical Computing。大学理工科专业一般都开设了或选修或必修的MATLAB相关课程。很多新出版的教材,计算机辅助教学的工具软件开始选用MATLAB。MATLAB以其简洁易学的语法、友好的界面和完善的文档系统逐渐深入人心并将继续扩大它的控制领地。
然而,MATLAB也有着很大的局限性。首先,是价格。 作为一款商业软件,获得正版授权,价格不菲。就说最便宜的学生版,核心组件单个授权要花99刀,想使用额外工具箱,则是每个工具箱29刀。(
http://www.mathworks.com/store/platformReleaseStuSubmit .do
) 正如你能想到的,商业版本更贵。其次,是版权。 mathworks论坛活跃着很多用户,也有很多有价值的代码,但是,版权归mathworks公司,要想使用必须获得它的授权。再次,是语言完善性。 MATLAB进行数学计算的表现无可置疑,但是实际的科学计算还有文件操作、界面设计等任务。MATLAB在这些领域功能较弱或者很麻烦。应该可以说,MATLAB不是一种完善的语言。
穷则思变。这时,我们发现了Python。MATLAB的以上不足,恰是Python的优势。
以上理由似乎足以让我们割爱MATLAB,选择使用“Python+扩展”来完成科学计算问题。然而,我想起班固的名言“爱而知其恶”,Python进行科学计算是不是完美?又有哪些劣势呢?Google了一阵子,发现大致是这样:第一,因为沉浸在开源的环境下,想私藏代码似乎不是那么容易了,甚至不好意思了。第二,文档系统不是很完善,中文的更是少之又少,这就要求一定的英语文档阅读功底。不过MATLAB至今也没有提供过中文的文档。第三,MATLAB中的有些生僻的专用工具箱没有Python环境下的对应模块功能实现。第四,貌似没有第四了。
以上对比不敢说写的就对,后续有关具体技术和代码的文章更是可能会有重大错误甚至误导。之所以还敢写出来,放到这里,权当借此平台和同道中人进行交流、切磋。文章假设您有初级的Python基础,这样就可以把重心放到科学计算而不是纯粹的语言上来;也假设您有一定的MATLAB基础,因为文中经常拿两者来对比并给出两者的各自实现。欢迎批评!(
uabuntsu@gmail.com
)