当前位置:  开发笔记 > 编程语言 > 正文

用python替换Matlab

如何解决《用python替换Matlab》经验,为你挑选了3个好方法。

我是一名工科学生,我必须做很多数值处理,绘图,模拟等工具.我目前使用的工具是Matlab.我在大学的计算机上使用它来完成大部分作业.但是,我想知道有哪些免费选项.

我做了一些研究,很多人都说python在各种场景下都是matlab的有效替代品.我想知道如何用python做这一切.我正在使用mac,所以我如何安装不同的python包.那些包裹是什么?它真的是一个可行的选择吗?使用这个python设置我可以做什么和不能做什么?



1> robince..:

在Mac上,最简单的入门方式是(没有特别的顺序):

Enthought Python Distribution包含您可能需要的大多数科学包.免费用于学术/非商业用途.

Macports - 最新版本的最新版本,所以sudo port install py26-numpy py26-scipy py26-matplotlib py26-ipython应该让你入门.

Scipy Superpack - 用于安装所有重要软件包的最新svn版本的脚本.

大约两年前我完成了这个(用Python代替Matlab)并且没有回头.Python中的广播,更直观的记忆模型和其他Numpy优势使数字作品成为一种完全的乐趣.再加上f2py,cython将内循环放在另一种语言中非常容易.这是一个很好的起点 - 提供动力的其他令人印象深刻的页面是PerformancePython和ParallelProgramming.一定要了解Pythons"变量是一个对象的引用"语义......在那个调整之后,一切都是一帆风顺的.打败matlab的最酷的事情之一就是2行,我运行8个核心... p = Pool(8); res = p.map(analysis_function,list_of_data)- MATLAB与工具箱相似的工具箱非常昂贵,我还没有看到实际拥有它们的大学.



2> reckoner..:

我已经使用Matlab编程了大约15年,使用Python编写了大约10年.它通常以这种方式分解:

如果您满足以下条件:1.您主要使用矩阵和矩阵运算2.您有资金获得Matlab许可证3.您在mathworks支持的平台上工作

然后,一定要使用Matlab.否则,如果您的数据结构不是矩阵,那么需要一个开源选项,允许您在不担心许可证的情况下提供解决方案,并且需要在mathworks不支持的平台上构建; 那么,请使用Python.

matlab语言很笨拙,但用户界面很光滑.Python语言非常好 - 使用matlab缺少的迭代器,生成器和函数编程工具; 但是,如果你不喜欢(或不能使用)SAGE,你将不得不挑选并选择一个漂亮的光滑界面.

我希望有所帮助.


同意一切.如果您需要非双稀疏矩阵(matlab不支持),内存映射文件,内存的低级控制(当事物被复制等)时会添加Python.我认为Python的良好界面现在开始显现科学堆栈开始稳定 - 例如http://code.google.com/p/spyderlib/ - 我希望它们能够在接下来的几年中快速提升年份.

3> Luke..:

用Python替换Matlab时要考虑三个方面; 核心语言功能,IDE和Price.

能力比较

本节概述了每个平台的所有功能.简而言之,Matlab可以做的一切,Python也可以做更多.然而,像线性代数和快速原型制作Matlab这样的东西更干净.

MATLAB

Matlab中的所有内容都已捆绑在一起,工具箱可以无缝集成.它也更成熟 - 但不是为通用编程而设计的,这意味着任何非线性代数相关的东西都难以实现.

工具箱: Matlab工具箱非常好,python实现通常很难与它们竞争(即使对于不那么专业的事情,如优化算法).

线性代数: Matlab具有简洁的线性代数功能,更易于阅读和解释.

可视化功能:具有非常好的和非常广泛的可视化功能.

蟒蛇

Python将需要许多额外的模块才能成为一个很好的Matlabreplacement.

通用编程: Python是一种适当的编程语言,它比Matlab提供了更多的灵活性.

Numpy:提供数组和线性代数例程,但是语法比Matlab更笨拙.我已经爱上了广播功能,但不再repmat浪费了.

SciPy:统计,优化和其他有用的数学东西.

MatPlotLib:在我看来,提供比Matlab更高质量的图.此外,它的设计在语法上类似于Matlab,因此应该很容易上手.

SymPy:良好的符号编程包.

IDE比较

这是我认为python缺乏的地方.我简单地发现算法开发(特别是涉及大量线性代数)在Matlab IDE中不那么痛苦.

MATLAB

以下是一些关键的Matlab功能,如果没有工程专业学生,这些功能很难实现.请注意,Python IDE确实也具有其中一些功能,但实施起来却更加笨拙.

强大的调试:可以非常非限制性的方式轻松探索功能.Python也允许调试,但在IDE中通常不是那么干净.

变量资源管理器: MATLAB有一个很好的变量资源管理器,它总能很好地查看许多支持的数据类型.一些python IDE很难显示numpy数组,这可能很烦人.

变量生存:如果代码在运行时中断,变量仍然存在,这有助于调试.此外,假设持久变量,连续运行不同的脚本更容易.在Python中,您必须在脚本中手动保存变量,以使其可用于其他脚本.

Profiler:非常适合您的算法瓶颈的细分.

命令行单行指令可以在命令行上执行.Python在所有优秀的IDE中也完全支持这一点.

GUI绘图工具:可以从用户界面快速轻松地绘制结果和变量.大多数Python IDE都面向软件开发,因此不支持这一点(尽管sypder通过matplotlib提供的支持有限).

文档:所有函数都在IDE中具有本机文档.

蟒蛇

有一些新的python IDE开始与MATLAB的一些关键优势竞争.我个人喜欢最近作为免费社区版本发布的PyCharm.它具有以下功能,并且从UI角度设计得非常好.

Bebugging

变量浏览器

命令行

文档

价格对比

Python是免费的,并且拥有一个活跃的支持社区.Matlab也有一个很好的支持社区,但不是免费的.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有