您现在的位置是:首页 > 文章详情

MATLAB vs. Python | 选择 MATLAB 用犹豫吗?

日期:2018-07-31点击:364

基于矩阵的 MATLAB 语言让数学直观易读。

工程师和科学家需要能够直观表达矩阵和数组数学运算的编程语言,而非通过通用编程实现的编程语言。
Python 中的矩阵数学需要执行函数调用,而非自然算子。您必须对标量、1-D 矩阵和 2-D 矩阵之间的差异进行跟踪。即使在最简单的 Python 代码中做到这一点也很困难,下图中Python 代码里的错误你能找到吗?

image

在 Python 代码的第 2 行有一个非常微小的错误。在原始代码中,行是 1-d 矩阵。它看起来像行向量,但却没有足够的维数来说明是行还是列——只能表明是 1-d 矩阵。由于没有第二个维度,第三行中的转置没有效果。而 MATLAB 不会对标量、1-d 矩阵、2-d 矩阵和多维数组进行人为区分。

使用 MATLAB 语言编写相同的示例,你会发现 MATLAB 在表达计算数学方面更加自然。由此可见,MATLAB 中的线性代数与教科书中的线性代数更接近,在数据分析、信号和图像处理、控制设计以及其他应用中也是一样。这也是超过 1,800 本教科书中使用 MATLAB 的原因。

MATLAB 适合工程师和科学家的工作方式。

Python 的函数通常由高级编程人员为其他编程人员设计开发,并撰写文档。Python 为科学计算提供的开发环境缺乏桌面版 MATLAB 所具备的可靠性和集成能力。

MATLAB 则是为工程师和科学家量身定制的:

函数名和签名熟悉并容易记住,便于读写。

新函数接口采用了严格的设计流程,每个函数通常会花费几十到几百个工时进行开发。

桌面环境为迭代工程和科研流程进行了优化。

集成的工具支持同时发掘数据和程序,用更少的时间实践更多的想法。
文档面向工程师和科学家编写,不是针对计算机科学家的。

“使用 MATLAB,我能够以远超其他语言的速度编写新功能的代码并调试代码错误,将开发时间缩短一半,这对于满足较短的交付周期很有帮助。当客户看到结果后,他们会认为我每周工作 70 小时。”

——Bancroft Henderson, EMSolutions

成熟的 MATLAB 工具箱为工程师和科学家所用。

无论是对经济数据建模、分析图像序列,还是操控机器人,都需要编程语言支持您使用的特定工具。这些工具不仅要正常工作,也需要完美配合。

Python 依靠社区创作的工具包为科研和工程应用提供功能,它们在质量和功能上千差万别。每个都有其独立的文档,工程师需要花费大量的时间整合一份解决方案。

与 Python 不同的是,MATLAB 工具箱为科学和工程应用提供经过专业开发、严格测试、市场验证和完备文档描述的功能。各个工具箱相互配合,也可以与并行计算环境、GPU 和自动 C 代码生成整合。它们同步更新,完全不必担心库版本不兼容的问题。

相比自定义编程,MATLAB 应用程序完成任务更轻松。

Python 不会为科研和工程应用提供支持一体化工作流程的应用程序,而是需要自定义编程。这会延缓研发进度,尤其是对于那些高度迭代的工作流程来说。

MATLAB 应用程序可以让您立即开始工作。这些交互式应用程序提供对大量算法集的直接访问并可以实时提供可视化反馈。您可以尝试新的曲面拟合算法、滤波器设计技术或机器学习分类算法,并且实时获取数据的运算结果。您可以在获得所需结果之前反复迭代,然后自动生成 MATLAB 程序,以便对您的工作进行重制或自动处理。

image

使用分类学习器应用程序进行模型验证和评估。

使用 MATLAB 轻松实现从研发到生产的全流程自动化。

重大的工程和科学挑战需要团队间的广泛合作,集思广益使想法付诸实施。在这过程中的每次交付都会增加错误和延迟的风险。

与 Python不同,MATLAB 可在整个工作流程中为团队提供帮助:

MATLAB 适用于 130 多个硬件供应商提供的 1,000 多个常用硬件设备
MATLAB 可集成到您的生产分析应用程序
通过扩展到集群、云和 GPU 更快速地实现算法并处理大数据
可接入 Simulink 和 Stateflow 实现仿真和基于模型的设计

MATLAB 更快,这意味着更多想法的实现以及解决更棘手的问题。

毋庸置疑,MATLAB 在处理统计、工程计算和数据可视化的常见科学计算任务时比 Python 更快。图表中列出了基准测试结果。

Python 代码需要使用重叠和冲突的附加功能来获得性能优势,如即时编译和显式并行编程。这些解决方案往往不完整,或者仅适用于高级编程人员。

MATLAB 承担了加速代码运行速度的艰巨任务。数学运算分布在计算机的各个内核中、库调用得到了高度优化,所有代码实时编译。只需要添加 3 个字符“par”到“for”,您就可以将 for 循环更改为并行 for 循环或将标准数组更改为 GPU 或分布式数组来以并行方式运行算法。无需更改代码,即可在可无限扩展的公共云或私有云上运行并行算法。

image

对比 MATLAB 和 Python 在统计、工程计算和数据可视化等领域的科学计算任务中的执行时间。每个点代表每种语言中单次测试运行的时间。

MATLAB 提供可信赖的运算结果。

工程师和科学家信赖 MATLAB 帮他们将宇宙飞船送往冥王星、使接受器官移植的患者与器官捐献者匹配,或者只是为管理层编制一份报告。这份信任建立在无差错的数值计算上,来自于 MATLAB 在数值分析研究领域的强大根基和完美表现。

MathWorks 的工程师团队每天会对 MATLAB 代码库运行数百万次测试,持续不断验证代码的质量。

原文发布时间为:2018-07-31
本文作者:MathWorks
本文来自云栖社区合作伙伴“ CDA数据分析师”,了解相关信息可以关注“ CDA数据分析师

原文链接:https://yq.aliyun.com/articles/621121
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章