当前位置: 首页 > 面试题库 >

MATLAB有什么用?为什么大学如此使用它?什么时候比Python更好?

元俊雅
2023-03-14
问题内容

最近有人要求我为一堂课学习一些MATLAB基础知识。

是什么让它对研究人员和大学工作人员来说如此酷?我发现处理矩阵和绘制事物很酷……(可以使用某些库在Python中轻松完成的事情)。

编写函数或解析文件很痛苦。我仍处于起步阶段,我想念什么?

在“现实”世界中,我应该考虑将其用于什么?什么时候可以比Python做得更好?为了更好,我的意思是:写表演的简便方法

更新1: 我最想知道的一件事是“我错过了什么吗?” :D

更新2: 谢谢您的回答。我的问题不是关于购买还是不购买MATLAB。大学有可能免费提供我旧版本的MATLAB副本(我猜是MATLAB
5),而不会违反许可证。我对它的功能很感兴趣,如果它值得更深入的研究(我不需要除 基本的
MATLAB以外的其他东西即可通过考试:P),那么对于真正的特定任务,它真的会比Python更好世界。


问题答案:

亚当只是部分正确。如果不是大多数,许多数学家将永远不会碰它。如果完全使用了计算机工具,它将是Mathematica或Maple之类的东西。另一方面,工程部门经常依靠它,对于某些应用数学家来说肯定有有用的东西。在某些领域,它也在行业中大量使用。

关于MATLAB,您必须意识到的是,它最初是作为线性代数的Fortran库的包装。长期以来,它的态度是“全世界都是双打(浮点数)”。作为一种语言,它已经有机地增长了,如果您仅将其视为编程语言,就会发现许多缺陷。

但是,如果您将其视为进行某些类型研究的环境,则它具有某些真正的优势。它和做浮点线性代数一样好。该符号简单而强大,实现快速且值得信赖。它非常擅长生成图和其他交互式任务。有很多带有良好代码的“工具箱”可以很好地完成特定任务。有大量共享数字代码的用户社区(至少在同一个联盟中,Python
+ NumPy没有任何东西)

不管是疣还是其他,Python都是一种更好的编程语言(与其他许多语言一样)。但是,在工具方面却落后了十年左右。

关键是,大多数使用MATLAB的人实际上并不是程序员,也不想成为程序员。

对于通用编程语言而言,这是一个糟糕的选择。这很古怪,对许多任务来说很慢(您需要对向量进行矢量化才能获得有效的代码),并且不容易与外界集成。另一方面,对于它擅长的事情,它非常非常好。比较的东西很少。有一家公司在合理的支持下,谁知道投入了多少年工夫。这在工业中可能很重要。

严格查看您的Python与MATLAB的比较,它们大部分是用于不同工作的不同工具。在它们确实重叠的区域中,很难说出更好的选择是什么(很大程度上取决于您要尝试做的事情)。但是大多数情况下,Python并不能充分发挥MATLAB的核心优势,反之亦然。



 类似资料:
  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 我有一个将客户发送到另一个站点来处理付款的应用程序。客户之外的另一个站点在我们的服务器上调用一个页面,让我们知道付款的状态。被调用页面会检查付款应用程序提供的参数,并检查我们是否知道该交易。然后,它更新数据库以反映状态。这一切都无需与客户进行任何互动即可完成。 我个人选择将此功能实现为JSP,因为将文件拖放到文件系统中比编译和打包文件然后将条目添加到配置文件中要容易得多。 考虑到页面的

  • 问题内容: 我正在研究THREE.js,并注意到其中定义函数的模式如下: 这种方法的 正常 变化如下所示: 将第一个版本与 正常 版本进行比较,第一个版本似乎有所不同: 它分配一个自动执行功能的结果。 它在此函数内定义了局部变量。 它返回包含使用局部变量的逻辑的 实际 函数。 因此,主要的区别在于,在第一个变体中,初始化时,bar仅分配一次,而第二个变体在每次调用时都会创建此临时变量。 关于为什么

  • 本文向大家介绍什么时候用delegate,什么时候用Notification?相关面试题,主要包含被问及什么时候用delegate,什么时候用Notification?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate针对one-to-one关系,并且reciever可以返回值 给sender,notification 可以针对one-to-one/many/none,recieve

  • 问题内容: 在“ Python编程 ”中,提到了。我来自背景,以前没有听说过这个词。什么是? 在本示例的两行之间进行阅读(我已经链接了它,因为它很长),我认为这是使用多重继承来扩展类而不是“适当的”子类的一种情况。这是正确的吗? 为什么我要这样做而不是将新功能放入子类中?因此,为什么混合/多重继承方法比使用组合更好? 什么将mixin与多重继承分开?这仅仅是语义问题吗? 问题答案: 是一种特殊的多

  • 问题内容: 有人可以解释什么是无作用域及其目的吗? 假设我有一个豆子 并说我没有将任何作用域bean n1注入到上述每个作用域中,然后我发现当实例化其父bean [r1 / s1 / a1]时,将为每个父bean实例化n1。 由于a1是应用程序作用域,因此a1中的作用域bean在整个a1中都不可用。直到不销毁s1并再次创建s1时,s1中的scope Bean才可用。 这是正确的吗? 以及使用它的目