如果我已经知道并使用Numpy / Scipy,我应该努力学习Matlab吗?

时间:2012-08-17 16:39:52

标签: matlab numpy scipy

我使用并喜欢Numpy和Scipy,但在我参与的其中一个领域(生物力学研究)中,MATLAB占据了主导地位。

我认为这种统治很大程度上归功于传统,类似于Windows或Office所发生的情况,但也许有一些内在的理由偏爱一个而不是另一个。

目前我可以用Numpy / Scipy来解决大多数数据分析问题,但是当我提到它时,我看到了研究人员脸上的尴尬。

真正的问题是:如果我已经知道Numpy / Scipy,是否真的需要学习Matlab?

5 个答案:

答案 0 :(得分:6)

假设您在我的实验室申请工作。你说“我知道Numpy / Scipy”。然后我说“那真棒,那么你学习Matlab会更容易”。为什么?因为我们的代码库是在Matlab中,我们的协作者的代码库是在Matlab中,我不会付钱给你重新发明轮子,我不会付钱给你写代码,这些代码不能轻易地集成到其他代码中。人民的项目。

简而言之:如果某个字段主要使用一种语言,并且您希望在该字段中工作,那么了解该语言非常有用。

答案 1 :(得分:2)

正确的答案实际上取决于你的情况。

在演示期间使用Matlab来防止有趣的面孔是正确的理由倾向于语言。如果有人不能接受你的结果,因为你使用的是Python而不是Matlab,那么他们就会证明自己作为科学同行的弱点。他们应根据这些结果的数据,结果和解释来判断您的工作。如果您正确实施模型,那么您用于实现模型的语言应该对结果产生 no 影响,如果确实存在,那么您的模型就会出现问题。

但是,如果您所在领域的工作是协作性的,那么学习同龄人的语言可能会更好。您希望您的同事将您的工作融入他们自己的工作中。遗憾的是,他们中的许多人都认为将Python翻译成Matlab对于进入来说是一个太高的障碍,并且放弃了。

所以只有你能决定是否有必要学习Matlab,尽管这可能是有利的。

答案 2 :(得分:1)

学习新的编程语言永远不会受到伤害。你只能通过学习让自己变得更好。所以问题归结为你想要努力学习MatLab。

答案 3 :(得分:1)

Numpy / Scipy的优点

  • 比MATLAB更快,特别是如果代码中存在非常大的for循环(或嵌套for循环)。 MATLAB有高度优化的矩阵操作,但我认为它们也有(parfor)
  • 的并行化
  • 没有许可问题,因此您可以像代码的一千个实例一样运行,而不必担心有一千个许可证可以使用它。

MATLAB的优点:

  • MATLAB有很多非常棒的内置软件包(比如整个统计工具箱)。
  • MATLAB非常适合制作漂亮的情节(如果你知道Matplotlib那么就忘了这个Pro)。
  • 您所在行业的每个人目前都在使用它。你可以将这归因于人们不愿意学习如何编程,或者某些群体固执或传统等......但它并没有改变这两件事:(1)你可能能够比他们学习更快地学习MATLAB python和(2)如果你能够有效地沟通并成为更广泛的研究人员社区的一部分,你的目标会更好地实现......是吗?

答案 4 :(得分:1)

我使用并喜爱Numpy / Scipy和MATLAB,在我看来它们是互补的,与偶尔用户通常假设的重叠程度相差远。

是的,我认为你真的有必要学习MATLAB,至少要验证我上面的不合理断言是否属实。