除了向您提供完整的差异列表之外,我将向您提供有关此问题的观点。
如果仔细阅读所提供的Wiki页面,您会经常看到诸如“ Octave支持两者,而MATLAB需要第一个同时支持”之类的句子。这表明Octave的开发人员试图使Octave语法“优于” MATLAB。
这种态度使八度完全失去了目的。Octave背后的想法是(或者已经变成,我应该说,请参阅下面的评论)以拥有一种运行m代码的开源替代方案。如果它试图变得“更好”,那么它就会尝试变得与众不同,这与大多数人使用它的原因不符。以我的经验,除了非常简单,非常简短的内容外,运行在MATLAB中开发的内容永远不会一work而就-对于任何相当大的功能,如果要在Octave中运行,我总是必须翻译很多内容,如果不要从头开始重写它。情况如何更好,我真的看不到...
另外,如果您学习Octave,则Octave中允许使用很多语法,而MATLAB中则不允许。含义-如果不进行大量转换,用Octave编写的代码通常无法在MATLAB中工作。相反,它也不兼容!
我可以继续:MathWorks有很多用于MATLAB的工具箱,还有Simulink及其相关产品,实际上在Octave中没有同等的产品(是的,您必须支付所有费用。但是,您的雇主/学校通常还是这样做的,而且至少还存在),已证明符合多种行业标准,测试工具,验证工具,需求管理系统,报告生成,更大的社区和用户群等,等等。MATLAB仅是一小部分更大的东西。八度是...只是八度。
所以,我的建议是:
- 找出您的学校是否会为MATLAB付费。他们经常会。
- 如果他们不这样做,并且您可以凑钱,请购买MATLAB并学习正确使用它。从长远来看,这是一个更好的决定。
- 如果您真的不能赚钱,请使用Octave,但是学习 MATLAB的语法并远离仅使用Octave的语法。(见说明)
为什么最后一点呢?因为在科学中,通常存在完全用MATLAB编写的大型代码库。有很多教授,工程师,学生,专业编码人员,很多人知道MATLAB的所有复杂细节,而对Octave的了解却很少。
如果您找到一份新工作,而您新办公室中的每个人都说西班牙语,那么要求每个人从那时起就开始说英语是一种自大的想法,仅仅是因为您不会说/不喜欢西班牙语。与MATLAB和Octave相同。
NB:如果所有拒绝投票的人都可以发表评论,并提供他们的论据和反对我的理由,那就太好了:)
注意:Octave可以在“传统模式”下运行(通过在启动Octave时包含--traditional标志),从而在使用某些仅使用Octave的语法时会产生错误。