-3

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

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

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

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

4

5 回答 5

6

假设你申请在我的实验室工作。你说“我知道 Numpy/Scipy”。然后我说“太棒了,那么你学习 Matlab 会容易得多”。为什么?因为我们的代码库在 Matlab 中,我们合作者的代码库在 Matlab 中,我不会付钱让你重新发明轮子,我不会付钱让你编写无法轻易集成到其他软件中的代码人的项目。

简而言之:如果一个领域主要使用一种语言,并且您想在该领域工作,那么了解该语言非常有用。

于 2012-08-17T17:02:55.610 回答
2

正确的答案真的取决于你的情况。

学习 Matlab 以防止在演示过程中出现滑稽面孔并不是学习该语言的正确理由。如果有人因为您使用 Python 而不是 Matlab 而不能接受您的结果,那么他们就证明了他们作为科学同行的弱点。他们应该根据数据、结果和对这些结果的解释来判断你的工作。如果你正确地实现了你的模型,那么你用来实现它们的语言应该对结果没有影响,如果确实如此,那么你的模型就有问题。

但是,如果您所在领域的工作是协作的,那么学习同行的语言可能会更好。您希望您的同行将您的工作融入他们自己的工作中。可悲的是,他们中的许多人会认为将 Python 翻译成 Matlab 的门槛太高,因此放弃了。

因此,只有您可以决定是否有必要学习 Matlab,尽管它可能是有利的。

于 2012-08-17T17:46:29.050 回答
1

学习新的编程语言永远不会有坏处。只有学习才能让自己变得更好。所以问题归结为你想努力学习 MatLab。

于 2012-08-17T17:03:36.527 回答
1

Numpy/Scipy 的优点

  • 比 MATLAB 更快,尤其是当您的代码中有非常大的 for 循环(或嵌套的 for 循环)时。虽然 MATLAB 具有高度优化的矩阵操作,但我认为它们也有一个并行化的 for (parfor)
  • 自由
  • 没有许可问题,因此您可以像运行一千个代码实例一样运行,而不必担心拥有一千个许可。

MATLAB 的优点:

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

我使用并喜欢 Numpy/Scipy 和 MATLAB,在我看来它们是互补的,与偶尔的用户通常认为的重叠要少得多。

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

于 2012-08-17T21:19:13.860 回答