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

我已经做过一些研究,许多人说python在各种情况下都可以替代matlab。 我想知道如何用python做所有这些事情。 我使用的是Mac,如何安装不同的python软件包。 那些包是什么? 真的可行吗? 使用此python设置我可以做什么和不能做什么?

如果您正在寻找IDE,则spyder具有与matlab相同的功能:en.wikipedia.org/wiki/Spyder_(软件)

Ive read MATLAB和Python之间最客观的比较之一,其中提到了许多确实有所作为的功能。

在Mac上,最简单的入门方法是(无特定顺序):

有思想的Python发行版,其中包含您可能需要的大多数科学软件包。免费用于学术/非商业用途。

Macports-最新版本,因此sudo port install py26-numpy py26-scipy py26-matplotlib py26-ipython应该会让您入门。

Scipy Superpack-安装所有重要软件包的svn版本的脚本。

大约2年前,我已经做到了这一点(用Python代替了Matlab),并且没有回头。使用Python进行广播,更直观的内存模型和Numpy的其他优点使数值工作变得非常愉快。与f2py和cython一起使用,可以很容易地将内部循环放入另一种语言。这是一个很好的起点-PerformancePython和ParallelProgramming是其他令人振奋的页面。一定要了解Python的"变量是对对象的引用"的语义……在进行了这种调整之后,一切都会顺利进行。击败matlab的最酷的事情之一是我在8个内核上运行了2条线... p = Pool(8); res = p.map(analysis_function,list_of_data)-MATLAB并行工具箱非常昂贵,我还没有看到实际上有它们的大学。

您可能还需要安装开发人员工具。各种模块确实需要gcc编译器并进行安装。

" MATLAB并行工具箱非常昂贵,我什至没有看到一所真正拥有它们的大学。"实际上,"并行计算工具箱"只是一个标准工具箱,Ive使用的所有大学站点许可证都包含该工具箱。如果您谈论的是Distribute Computing Server,那么您绝对正确,因为它很昂贵,但是您不需要它在8个本地内核上运行。

我的立场是正确的-我认为这更昂贵。虽然在英国还没有看到它。为了让您对我的前10名> 25,000名学生大学有一个了解,我们有2个优化工具箱许可证!我们有一个新的计算机套件,用于大约10台计算机的MSc课程-我考虑购买DCS,而总成本是硬件成本的3倍。

哎哟!那很粗糙。 DCS的成本是我为某些小组较大的项目开始学习Python的部分原因。总体而言,很好的答案。 Enthought看起来非常方便(很遗憾,学术人员无法免费使用64位版本)。

EPD的64位版本对学者免费。您只需要给他们您的电子邮件地址即可。

我从事Matlab编程已有15年之久,而使用Python已有10年之久。通常会这样分解:

如果可以满足以下条件:

1.您主要使用矩阵和矩阵运算

2.您有钱购买Matlab许可证

3.您在Mathworks支持的平台上工作

然后,一定要使用Matlab。否则,如果您具有矩阵以外的数据结构,则需要一个开放源代码选项,该选项可让您无需担心许可证即可交付解决方案,并且需要在mathworks不支持的平台上构建;然后,使用Python。

Matlab语言很笨拙,但用户界面很漂亮。 Python语言非常好-具有matlab缺少的迭代器,生成器和函数式编程工具;但是,如果您不喜欢(或不能使用)SAGE,则必须选择一个漂亮的光滑界面。

希望对您有所帮助。

同意一切。如果需要使用非双重稀疏矩阵(matlab不支持),内存映射文件,内存的低级控制(复制事物等)时,将添加Python。我认为Python的漂亮接口现在已经开始出现,科学堆栈开始趋于稳定-例如,请参阅code.google.com/p/spyderlib-我希望它们在未来几年内会迅速改善。

使用numpy时,使用python矩阵同样容易。

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

能力比较

本节概述了每个平台的所有功能。简而言之,Matlab可以做的一切,Python还能做的还很多。但是,诸如线性代数和快速原型制作Matlab之类的东西就更干净了。

Matlab的

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

工具箱:Matlab工具箱非常好,并且python实现常常很难与它们竞争(即使对于诸如优化算法之类的不太专门的东西)。

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

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

Python

Python将需要大量其他模块才能使其成为良好的Matlab替代品。

通用编程: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中,您将必须手动将变量保存在脚本中,以使变量可用于其他脚本。

事件探查器:非常有助于您了解算法瓶颈所在。

命令行可以在命令行上执行单行指令。 Python在所有好的IDE中也完全支持此功能。

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

文档:所有功能在IDE中都有本机文档。

Python

有一些新的python IDE正在与MATLAB的一些关键优势竞争。我个人喜欢最近以免费社区版本发布的PyCharm。它具有以下功能,并且从UI角度进行了精心设计。

调试

变量浏览器

命令行

文献资料

价格对比

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

Ive在matlab中发现了与您所说的状态完全相反的IDE,也许是因为这是从2013年开始的,但是耶稣,即使是最基本的Python IDE(例如Spyder),即使是Matlabs IDE也绝对是恐怖的。实际上,在matlab IDE中进行编程要比使用带有matlab插件的Visual Studio Code花费更长的时间,因为它的糟糕程度。令人遗憾的是mathworks仍然以与产品一样多的价格销售该产品,但甚至没有为最基本的功能投入自己的IDE。

尝试Sage-它被设计为Matlab,Mathematica等的开源替代品。它是用Python实现的,可以用Python编写脚本,但是它还增加了许多特定于数学的功能。 Mac有一个安装程序,因此您无需下载很多单独的软件包。

还有GNU Octave-Mathematica / Matab的另一个开源替代品,它具有自己的编程语言。但是,我还没有找到有关Mac版本的任何信息(尽管看起来还不是很辛苦)。

也许您喜欢sagemath,它可以将许多现有的开源软件包的功能组合到一个通用的基于Python的界面中。这是一个特色导览。

python(x,y)非常强大,但仅适用于Windows或Linux,因此您必须使用Bootcamp或Linux。 Matplotlib是更轻量的数学软件包,它基本上在Python语言中增加了绘图功能(最好与IPython一起使用)。

如果sourcefourge上的从matlab到python的转换mat2py项目起飞,那就太好了。

重复的。

我的感觉是,对于纯数值/线性代数计算和可视化来说,Matlab是一个更为一致的开发环境。在我看来,Numpy / Scipy / Matplotlib有点偶然。如果您要构建一个完整的程序(以使系统自动化或在网页上显示结果),那么Python的优势就是首先要成为一种真正的编程语言。但是对于交互式数值处理,我认为Matlab仍然可以胜出。 Python中缺少元素明智的中缀运算符是一个小例子(PEP 225)。对于统计计算,数据探索和可视化,很难击败R。

Numpy中数组运算的默认值是按元素排列的...如果您有很多线性代数(对于矩阵类正态*运算符是矩阵乘法),则可以通过使用dot()或矩阵类来轻松克服缺少矩阵乘法的运算符

我同意您可以解决此问题,但是对于一整天都在使用矩阵的人来说,这些解决方法并不像matlab样式语言所提供的那样好。尤其是在动态类型语言中,我不知道对象是数组还是矩阵,因此也不知道*的含义。元素和对象明智的运算符也远不止于矩阵乘法。例如,元素和对象明智的逻辑运算符有不同的用途,而施加列一致性的加法运算符(如Statas mata语言)也很有帮助。

matlab代码用python替换_用python替换Matlab相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  3. python 语义网络_从Python代码到APP,你只需要一个小工具:GitHub已超3000星

    机器学习开发者想要打造一款 App 有多难?事实上,你只需要会 Python 代码就可以了,剩下的工作都可以交给一个工具.近日,Streamlit 联合创始人 Adrien Treuille 撰文介绍 ...

  4. 为什么python代码运行不了_为什么Python代码能运行但是PyCharm给我画红线?

    PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者.这本来是一个非常好的功能,但却由于另外一个问题,会给一些Python初学者造成困扰. 这一篇文章,我们讲讲工作区导致的这个问题. 首先我们 ...

  5. python范例_最佳Python代码范例

    python范例 Python is a general purpose programming language which is dynamically typed, interpreted, a ...

  6. python代码怎么变成软件_从Python代码到APP,你只需要一个小工具:GitHub已超6000星

    点击上方Python知识圈,选择设为星标 回复1024获取Python资料 选自TowardsDataScience作者:Adrien Treuille机器之心编译参与:魔王.一鸣 阅读文本大概需要 ...

  7. python字符串之查找与替换_在Python中查找和替换文本

    最简单的查找替换 在Python中查找和替换非常简单,如果当前对象是一个字符串str时,你可以使用该类型提供的find()或者index()方法查找指定的字符,如果能找到则会返回字符第一次出现的索引, ...

  8. python 情书_用Python做一个520表白神器,值得收藏(示例代码)

    本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用. 先来看一下具体的效果. 运行程序. 点击「选择图片」 选择JPG/JPGE/PNG三种中 ...

  9. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

最新文章

  1. NSURLProtectionSpace 证书认证的上下文
  2. c++ 异步回调_知道Java中的回调机制吗?
  3. 041_Popover弹出框
  4. ORA-27301 解决一例
  5. 北斗导航 | GPS 信号频谱分析
  6. python子类初始化父类_Python实现子类调用父类的初始化实例
  7. 他曾经负债2.5亿,如今身价超过500亿
  8. Iphone表视图的简单操作
  9. 工业机器人国内外的发展现状
  10. 轻松使用终端开启macOS系统的隐藏功能,小白都能看得懂
  11. 隐瞒中国iPhone需求下滑实情:库克和苹果惹上事了
  12. neo4j 删 delete
  13. 浏览器的“sleep”
  14. javaweb不同用户登录不同页面的页面_ssh+mysql实现的Java web论坛系统源码附带视频指导运行教程...
  15. Elasticsearch节点类型
  16. 淘宝短视频原创检测,重复检测算法原理分析
  17. 传智播客html作业小苹果,传智播客_网页设计与制作(HTML+CSS) 案例源代码.rar
  18. Python词云图:指定形状、颜色和字体
  19. 易支付v5.8个人二维码免签系统破解版
  20. js 校验身份证号码

热门文章

  1. 有哪些令你印象深刻的魔改Transformer?
  2. 【Excel】二、VBA入门指导
  3. 探索区块链C端市场 艺术品、卡牌、音乐皆可NFT
  4. 用U盘装win7纯净版系统提示缺少所需的CD/DVD驱动器设备驱动程序解决办法
  5. coreldraw x7怎样设置禁网_怎样设置文件禁止访问网络
  6. 三层交换机上配置Trunk并接口为802.1q
  7. 计算机二级python证书有用吗_计算机二级对找工作重要吗 用处大不大
  8. 为什么小黄鸭调试法在中国行不通
  9. 亡羊补牢,为时未晚:开始构架CVS服务器,跟随分布式开发的脚步... ...
  10. 计算机软件应用工程师实习报告及周记范文30篇