Вместо того, чтобы предоставить вам полный список различий, я выскажу свое мнение по этому вопросу.
Если вы внимательно прочитаете предоставленную вами вики-страницу, вы часто увидите предложения типа «Octave поддерживает оба, а MATLAB требует первого» и т. Д. Это показывает, что разработчики Octave пытаются сделать синтаксис Octave «превосходящим» по сравнению с MATLAB.
Такое отношение заставляет Октаву полностью потерять свою цель. Идея октава (или стал , я должен сказать, см комментарии ниже) , чтобы иметь альтернативу с открытым исходным кодом для запуска м-код. Если он пытается быть «лучше», он, таким образом, старается быть другим , что не соответствует причинам, по которым большинство людей его используют. По моему опыту, запуск вещей, разработанных в MATLAB, никогда не работает за один раз, за исключением действительно простых, действительно коротких вещей - для любой значительной функции мне всегда приходится переводить много вещей, прежде чем они будут работать в Octave, если не переписывай это с нуля. Как это лучше , я действительно не вижу ...
Кроме того, если вы изучаете Octave, в Octave разрешен большой синтаксис, который не разрешен в MATLAB. Значение - код, написанный на Octave, часто не работает в MATLAB без многочисленных преобразований. Это также не совместимо наоборот!
Я мог бы продолжить: у MathWorks есть много наборов инструментов для MATLAB, есть Simulink и связанные с ним продукты, для которых на самом деле нет эквивалента в Octave (да, вам придется платить за все это. Но зачастую ваш работодатель / школа делает это в любом случае и, по крайней мере, оно существует ), доказанное соответствие нескольким отраслевым стандартам, инструментам тестирования, инструментам проверки, системам управления требованиями, генерации отчетов, значительно большему количеству пользователей и пользователей и т. д. и т. д. и т. д. MATLAB - это лишь небольшая часть чего-то гораздо большего. Октава это ... просто Октава.
Итак, мой совет:
- Узнайте, заплатит ли ваша школа за MATLAB. Часто они будут.
- Если нет, и если вы можете собрать деньги вместе, купите MATLAB и научитесь правильно его использовать. В конечном итоге это лучшее решение.
- Если вы действительно не можете получить деньги - используйте Octave, но изучите синтаксис MATLAB и держитесь подальше от синтаксиса Octave-only. (смотрите примечание)
Почему этот последний пункт? Потому что в науках часто бывают большие кодовые базы, полностью написанные на MATLAB. Есть профессора, инженеры, студенты, профессиональные программисты, много-много людей, которые знакомы со всеми сложными мрачными деталями MATLAB, и не так уж много о Octave.
Если вы получаете новую работу, и все в вашем новом офисе говорят по-испански, то довольно глупо требовать от всех, чтобы они начали говорить по-английски, просто потому, что вы не говорите по-испански. То же самое с MATLAB и Octave.
NB - если бы все downvoters могли просто оставить комментарий со своими аргументами и причинами несогласия со мной, это было бы здорово :)
Примечание: Octave может быть запущен в «традиционном режиме» (с помощью флага --traditional при запуске Octave), что выдает ошибку при использовании определенного синтаксиса только для Octave.