我就是这么做的(用Python取代Matlab)大约2年前就开始了,而且还没有回头。Python中的广播、更直观的内存模型和其他Numpy优势让数值工作成为一种完全的乐趣。加上f2 py,用另一种语言编写内部循环非常容易。This是一个很好的起点-其他令人印象深刻的页面是PerformancePython和ParallelProgramming。一定要理解Python的变量是对对象语义的引用......调整后一切都一帆风顺。击败matlab最酷的事情之一是在2行中运行8个内核。.. p = Pool(8); res = p.map(analysis_function,list_of_data)- MATLAB并行工具箱是如此昂贵,我还没有看到一所大学,实际上有他们。
试试Sage--它被设计为Matlab、Mathematica等的开源替代品。它是用Python实现的,可以用Python编写脚本,但它也增加了很多数学方面的特性。有了installer for the Mac,你就不需要下载很多单独的包了。 还有GNU Octave-Mathematica/Matab的另一个开源替代品,它有自己的编程语言。然而,我没有找到任何关于Mac版本的信息(尽管我没有很努力地寻找)。
8条答案
按热度按时间4si2a6ki1#
在Mac上,最简单的入门方法是(没有特定顺序):
sudo port install py26-numpy py26-scipy py26-matplotlib py26-ipython
应该可以帮助您入门。我就是这么做的(用Python取代Matlab)大约2年前就开始了,而且还没有回头。Python中的广播、更直观的内存模型和其他Numpy优势让数值工作成为一种完全的乐趣。加上f2 py,用另一种语言编写内部循环非常容易。This是一个很好的起点-其他令人印象深刻的页面是PerformancePython和ParallelProgramming。一定要理解Python的变量是对对象语义的引用......调整后一切都一帆风顺。击败matlab最酷的事情之一是在2行中运行8个内核。..
p = Pool(8); res = p.map(analysis_function,list_of_data)
- MATLAB并行工具箱是如此昂贵,我还没有看到一所大学,实际上有他们。tf7tbtn22#
我用Matlab编程已经有15年了,用Python编程也有10年了。
如果能满足以下条件:1.你主要使用矩阵和矩阵运算2.你有钱买Matlab许可证3.你在Mathworks支持的平台上工作
然后,无论如何,使用Matlab。否则,如果你有矩阵以外的数据结构,想要一个开源的选项,让你提供解决方案,而不用担心许可证,并需要建立在平台上,数学不支持;然后,使用Python。
matlab语言很笨拙,但是用户界面很光滑。Python语言非常好--有迭代器、生成器和matlab所缺乏的函数式编程工具;但是,如果您不喜欢(或不能使用)SAGE,您将不得不挑选并组合一个漂亮界面。
希望能帮上忙。
tp5buhyn3#
当用Python替换Matlab时,有三个方面需要考虑;核心语言功能、IDE和价格。
功能比较
这一节概述了每个平台的所有功能。简而言之,Matlab能做的一切,Python也能做,甚至更多。然而,像线性代数和快速原型开发这样的事情,Matlab做得更干净。
Matlab软件
Matlab中的一切都已经捆绑好了,工具箱也无缝集成。它也成熟得多-但不是为通用编程设计的,这意味着任何与线性代数无关的东西都很难实现。
***工具箱:**Matlab工具箱非常好,python实现经常很难与它们竞争(即使在优化算法等不太专业的东西上)。
***线性代数:**Matlab具有简洁的线性代数功能,更易于阅读和解释。
***可视化功能:**具有非常好和非常广泛的可视化功能。
巨蟒
Python需要一些额外的模块才能成为一个很好的Matlab替代品。
***通用编程:**Python是一种合适的编程语言,它比Matlab提供了更多的灵活性。
***Numpy:**提供数组和线性代数例程,但语法比Matlab更笨拙。我已经爱上了broadcasting功能,但不再有
repmat
垃圾。***SciPy:**统计、优化和其他有用的数学内容。
***MatPlotLib:**在我看来,提供了比Matlab更高质量的绘图。此外,它的设计在语法上类似于Matlab,所以应该很容易拿起。
***SymPy:**良好的符号编程包。
IDE比较
这就是Python在我看来所缺乏的地方。我只是觉得算法开发(特别是涉及大量线性代数)在Matlab IDE中不那么痛苦。
Matlab软件
这里有一些Matlab的关键特性,作为一个工程专业的学生,没有这些特性是很难生活的。注意,Python IDE确实也有一些这样的功能,但是实现起来比较草率。
***强大的调试功能:**可以以一种非常不受限制的方式轻松地探索函数。Python也允许调试,但通常在IDE中实现得不那么干净。
***Variable Explorer:**MATLAB有一个很好的变量浏览器,它总是很好地查看许多支持的数据类型。一些python IDE很难显示numpy数组,这可能很烦人。
***变量生存:**如果代码在运行时中断,变量仍然保持不变,这有助于调试。此外,在一行中运行不同的脚本,假设变量保持不变会更容易。在Python中,你必须手动保存脚本中的变量,以便其他脚本可以使用它们。
***Profiler:**非常适合分析算法的瓶颈所在。
*命令行单行指令可以在命令行上执行。Python在所有好的IDE中都完全支持这一点。
***GUI绘图工具:**结果和变量可以从用户界面快速而轻松地绘制出来。大多数Python IDE都是面向软件开发的,因此不支持这一点(尽管sypder通过matplotlib提供了有限的支持)。
***文档:**所有函数在IDE中都有本机文档.
巨蟒
有一些新的python IDE开始与MATLAB的一些关键优势竞争。我个人喜欢最近发布的免费社区版本PyCharm。它具有以下功能,从UI的Angular 来看设计得非常好。
价格比较
Python是免费的,有一个活跃的支持社区。Matlab也有一个很好的支持社区,但绝不是免费的。
jgzswidk4#
也许你喜欢sagemath,它“将许多现有开源软件包的功能结合到一个基于Python的通用接口中”。
epfja78i5#
试试Sage--它被设计为Matlab、Mathematica等的开源替代品。它是用Python实现的,可以用Python编写脚本,但它也增加了很多数学方面的特性。有了installer for the Mac,你就不需要下载很多单独的包了。
还有GNU Octave-Mathematica/Matab的另一个开源替代品,它有自己的编程语言。然而,我没有找到任何关于Mac版本的信息(尽管我没有很努力地寻找)。
yizd12fk6#
python(x,y)非常强大,但仅适用于Windows或Linux,因此您必须使用bootcamp或Linux。一个更轻量级的数学包是Matplotlib,它基本上为Python语言添加了绘图功能(最好与IPython一起使用)。
vdgimpew7#
this的副本。
我的感觉是,对于纯数值/线性代数计算和可视化,Matlab是一个稍微更一致的开发环境。有点随意。如果你正在构建一个完整的程序--使系统自动化或在网页上显示结果-- Python首先是作为一种真实的的编程语言的优势。但对于交互式数值处理,我认为Matlab仍然是赢家。Python中缺少元素形式的中缀运算符就是一个小例子(PEP 225)。对于统计计算、数据探索和可视化,R是最好的。
alen0pnh8#
如果sourcefourge的matlab到python的mat2py转换项目成功的话,那就太好了。