是否可以使用 Octave 来学习 MATLAB 编程?

计算科学 软件 matlab 语言 八度
2021-11-28 21:04:50

我想学习 MATLAB 编程,这样我就可以自己进行一些研究/分析,也可以学习/修改我在网上找到的一些 MATLAB 脚本等。

但是,问题是我买不起 MATLAB。据我所知,GNU Octave 与 MATLAB 非常兼容。不过,Octave 面临的挑战是文档非常稀少。

因此,一方面,MATLAB 非常昂贵(-ve),但有很多好的文档、教程和在线脚本(+),而 Octave 是免费的(就像在啤酒中一样),尽管(可以理解)它缺乏全面​​的文档等.

我正在考虑下载和安装 Octave,但使用 MATLAB 文档(和脚本)来帮助我开始。我知道 Octave 和 MATLAB 之间存在一些差异 - 我想要解决的是差异是否大到足以阻碍我(有效地)“使用 Octave 学习 MATLAB”的努力。

欢迎任何建设性的反馈。

4个回答

免责声明:当有人试图告诉我他们认为我应该做什么而不是回答我提出的问题时,我有时会生气。但我会冒险并为你推荐一个替代方案。

我建议查看Python 的科学计算包:numpymatplotlibscipy它们共同为您提供了 MATLAB 的大部分核心功能(在某些情况下,它们为您提供的不仅仅是 MATLAB)。它们是免费和开源的,如今可能拥有比 Octave 更广泛的用户群。Python 中的许多科学计算基础设施都由Enthought Inc.支持,我建议您安装他们的免费Enthought Python Distribution,其中包括我提到的所有三个包以及更多包。

当然,MATLAB 的某些特性(尤其是在工具箱中,但 Octave 没有这些特性)是 Python 所缺乏的。但在我的大部分工作中,我将 Python 与低级语言结合使用,它允许我使用几乎与 MATLAB 一样方便的语言进行编程,与 MATLAB 没有的许多有用的包接口,并运行在超级计算机上同样易于阅读的代码。

编辑:您可能还想尝试来自 Continuum Analytics的Anaconda Python 发行版。有一个免费版本,其中包括上述所有软件包等等。

GNU Octave “大部分与 Matlab 兼容”,某些细微之处意味着并非所有脚本都可以从 MATLAB 移植到 Octave。

值得阅读常见问题解答wikibooks中有关语言和/或兼容性说明的文档还有移植说明

存在类似于 MATLAB 工具箱的软件包,但您需要检查它们以了解它们的相似程度。也有尝试处理两种语言之间差异的转换脚本,但据我所知,没有一个是完美的。

是的,您可以通过 Octave 学习 MATLAB。但 Octave 语法限制较少,更符合现代脚本语言。MATLAB 在这方面似乎落后了。请参阅此 wiki 链接MATLAB 编程/Octave 和 MATLAB 之间的差异

对我来说,另一个主要区别是某些库可用于 MATLAB,但不能用于 Octave。

对于一般学习 M 语言编程和 MATLAB 的工作原理,是的,Octave 就可以了。但是,如果您需要一个特定的工具箱作为您工作的一部分,而没有人实现它的免费版本,那么您就不走运了。

MATLAB 的学生版并不昂贵。如果您在大学,他们甚至可能拥有站点许可证。你应该研究这两种可能性。