我应该切换到Python吗?

ssu*_*on2 10 python matlab numpy scipy

我最近一直在考虑转换到Python编程语言.目前,Matlab是我部门快速开发和编写代码原型的首选语言.它非常擅长这一点,但是Mathworks(生产Matlab的公司)一直在修改许可条款,导致无法存在的麻烦.

Jos*_*del 22

我发现python + numpy + scipy + matplotlib + IPython + [随机sci /数字包]几乎是matlab的完全替代品.肯定有一些软件包丢失了,所以如果有一套专门的工具可以在matlab中使用而不是在python中,这可能是一个问题,但除此之外,我没有回头看.

我将提到python优于matlab的几个明显优势

  • 真正的编程语言,而不是在数字包上抛出的语言(numpy来到python而不是相反).管理大型python项目是对matlab的完全喜悦.有多少不同的oop系统被编入matlab?
  • 完全免费和便携.我几乎可以在没有许可问题的任何机器上使用python.从我的角度来看,这是最大的优势.
  • 包裹在C,C++其他库,Fortran的是使用SWIG,用Cython,f2py等VS这是一个MEX文件丑陋相当简单
  • Cython用于加速慢速代码(尽管我发现numpy几乎和matlab一样快)
  • mpi4py与我必须从matlab购买以运行并行应用程序的其他软件包

我个人使用Enthought Python Distribution来完成我的很多工作,因为它包装了所有内容,对于学术界的个人来说是免费的.我可以从头开始构建python及其所有库和模块.模块管理也许是在python的最大弱点,但也有一些不错的东西,以帮助像virtualenvpip

  • "有多少不同的oop系统被改进了matlab?" 我只使用了六个:1.旧样式OO 2.旧shema 3.仿真与闭包(嵌套函数)4.使用全局/持久性仿真5.新样式OO 6.使用Java对象.还有吗? (9认同)

小智 11

选择取决于成本.如果您愿意为Matlab付费 - 特别是如果您使用工具箱 - 您可能会发现Python不提供这样的集成包.将矩阵作为基本数据类型使Matlab成为许多数学任务的直观语言.就个人而言,我发现这与调试器相结合是非常宝贵的.

Python,通过NumPy,SciPy等提供相同的功能.当然会有一个需要克服的学习曲线.

如果您正在执行一般编程任务,这不是特别应用的数学解决方案,那么Python是一种非常易于使用和适应性强的语言.它也是免费的 - 这可能是一个决定性因素.


nco*_*lan 7

如果您正在寻找批发Matlab替代品,您可能需要查看Python(x,y).它旨在提供更具凝聚力的体验,而不是让新用户自己搜索互联网,寻找合适的组件.

另一种选择是GNU Octave,它本质上是MATLAB的开源克隆.


eat*_*eat 2

只需下载scipy并尝试一下即可。