我使用并喜欢 Numpy 和 Scipy,但在我参与的一个领域(生物力学研究)中,MATLAB 占据了主导地位。
我相信这种统治很大程度上是由于传统,类似于 Windows 或 Office 发生的情况,但也许有一些内在的理由偏爱一个而不是另一个。
目前我可以用 Numpy/Scipy 解决大部分数据分析问题,但是当我提到它时,我看到了研究人员脸上的尴尬。
真正的问题是:如果我已经知道 Numpy/Scipy,是否真的有必要学习 Matlab?
假设你申请在我的实验室工作。你说“我知道 Numpy/Scipy”。然后我说“太棒了,那么你学习 Matlab 会容易得多”。为什么?因为我们的代码库在 Matlab 中,我们合作者的代码库在 Matlab 中,我不会付钱让你重新发明轮子,我不会付钱让你编写无法轻易集成到其他软件中的代码人的项目。
简而言之:如果一个领域主要使用一种语言,并且您想在该领域工作,那么了解该语言非常有用。
正确的答案真的取决于你的情况。
学习 Matlab 以防止在演示过程中出现滑稽面孔并不是学习该语言的正确理由。如果有人因为您使用 Python 而不是 Matlab 而不能接受您的结果,那么他们就证明了他们作为科学同行的弱点。他们应该根据数据、结果和对这些结果的解释来判断你的工作。如果你正确地实现了你的模型,那么你用来实现它们的语言应该对结果没有影响,如果确实如此,那么你的模型就有问题。
但是,如果您所在领域的工作是协作的,那么学习同行的语言可能会更好。您希望您的同行将您的工作融入他们自己的工作中。可悲的是,他们中的许多人会认为将 Python 翻译成 Matlab 的门槛太高,因此放弃了。
因此,只有您可以决定是否有必要学习 Matlab,尽管它可能是有利的。
学习新的编程语言永远不会有坏处。只有学习才能让自己变得更好。所以问题归结为你想努力学习 MatLab。
Numpy/Scipy 的优点
MATLAB 的优点:
我使用并喜欢 Numpy/Scipy 和 MATLAB,在我看来它们是互补的,与偶尔的用户通常认为的重叠要少得多。
是的,我认为您确实有必要学习 MATLAB,至少要验证我上面的不合理断言是否正确。