Почему / когда я должен предпочесть MATLAB Octave?

В нашей скудной операции нам нужно прототипировать алгоритмы на каком-нибудь языке более высокого уровня, прежде чем переходить к реализации C на встроенном оборудовании.

До сих пор мы использовали MATLAB для этого, но затраты на лицензирование начинают снижаться. Мы рассматриваем возможность переноса нашего кода MATLAB на Octave.

Есть ли какая-то особая причина не этого делать? Сможем ли мы нарушить совместимость, особенно если у нас есть внешние партнеры, которые настаивают на использовании MATLAB? Есть ли какие-либо потери производительности, которые мы можем ожидать?

80
задан lindelof 20 August 2010 в 20:59
поделиться

7 ответов

В 2008 году я попытался сделать то же самое. Я быстро заметил следующие препятствия:

  • Ящики для инструментов не так полны и не так хорошо протестированы. В частности, набор инструментов для обработки изображений, на который в значительной степени опиралась моя работа (большой проблемой для шоу было то, что imtransform не был реализован).
  • Отладчик и профилировщик Octave были примитивными по сравнению с Matlab.
  • Если вы работаете с другими, может быть очень трудно заставить их измениться.
  • Если вы используете сторонние наборы инструментов, вы сами заставляете их работать.
  • Сюжеты Октава не публикуются.

Но я должен сказать, что меня в целом впечатлило, насколько Octave совместим с Matlab. Если вы используете Matlab в основном, вам может повезти. Наконец-то это было в 2008 году, через два года многое может измениться.

51
ответ дан 24 November 2019 в 09:58
поделиться

Просто пришло в голову:

  1. Есть много наборов инструментов, которых нет у Octave, как я обнаружил, когда два семестра назад пытался делать домашнее задание на курсе машинного обучения.
  2. Octave имеет гораздо худший отладчик. Работать было практически невозможно.
  3. Matlab намного быстрее выполняет многие типы операций.
  4. Сюжеты в Matlab намного лучше.
  5. Octave не имеет собственного графического интерфейса. Для Octave есть графические интерфейсы, но они уступают родному для Matlab.
24
ответ дан 24 November 2019 в 09:58
поделиться

Интересно посмотреть, как альтернатива с открытым исходным кодом работает для статистики, но не для численного анализа. R (октава статистики) в настоящее время гораздо популярнее коммерческого S-plus (математическая лаборатория статистики). Проблемы, упомянутые в качестве причин не отказываться от Matlab, найденные в других ответах, также применимы к R. Но все же все только начали вносить свой вклад, и теперь R является стандартом, с лучшей графикой, лучшими пакетами и без привязки к поставщику.

Так что вы могли бы предпочесть октаву матлабу, если можете перешагнуть дилемму заключенных.

6
ответ дан 24 November 2019 в 09:58
поделиться

Я также тестировал октаву и R.

По поводу октавы: Меня очень впечатлило схожесть октавного синтаксиса. Мне не потребовалось много времени, чтобы перенести мои скрипты MATLAB в октаву. Между тем у меня есть особая проблема с печатью маркеров вместе с панелью ошибок, которая была исправлена ​​Ярно Раджахалмом на nabble, и с изменением размера шрифта xtick, который я получил в ответе на вопрос на nabble. Так что в нем все еще есть некоторые ошибки, которые можно исправить. Если у вас возникнут проблемы, вы можете попробовать nabble mailing forum: (скрыто). Кстати, моя команда не может адаптироваться (удобная для пользователя) к нему, например, они адаптируются к MATLAB, поэтому мы все еще используем MATLAB. Поскольку MATLAB построен под gnuplot, другим способом исправить его ошибки является редактирование сгенерированного файла gnuplot. Лучшей IDE, которую я нашел для нее, была QtOctave, которую я сделал краткий обзор в «Помните блог».

Что касается R: , согласно исследованию, проведенному SciViews, производительность R превосходит MATLAB и октаву. У меня нет большого опыта работы с R. Я изучил пакет mclust, чтобы написать главу в викибуке об ЭМ кластеризации в R. Между прочим, у них, похоже, очень активное сообщество. Таким образом, вы можете найти сторонние пакеты предложений, которые не стандартизированы ИМО. Лучшей IDE, которую я нашел, был плагин StatET для eclipse, JGR (Java GUI для R) и emacs. Несмотря на временные затраты на изучение нового языка программирования, если бы я выбрал платформу с открытым исходным кодом для графического отображения эксперимента и некоторого анализа данных, я бы попробовал R.

14
ответ дан 24 November 2019 в 09:58
поделиться

Вы определенно должны предпочесть Matlab Octave, если можете себе это позволить.

У меня не было большого опыта работы с Octave, но я бы ожидал проблем, если ваш код использует инструментальные панели Matlab, причудливые графики или руководство Matlab.

Я бы ожидал, что это будет как OpenOffice против MS Office. В основном совместимы, но отличаются настолько, что у вас будет болеть голова.

2
ответ дан 24 November 2019 в 09:58
поделиться

Есть хорошая WikiBook по MATLAB с списком различий между MATLAB и Octave.

По моему опыту, ядро MATLAB хорошо переносится в Octave, но наборы инструментов имеют разный уровень совместимости, поэтому ваше решение зависит от того, что именно вы пытаетесь написать.

Некоторые вещи, которых не хватает Octave, AFAIK, это тесная интеграция с кодом .NET и средство создания графического интерфейса, guide (хотя есть много других средств создания графического интерфейса, которые может использовать Octave).

Кроме того, как отмечали другие, большая часть того, за что вы платите в MATLAB, - это удобный интерфейс и инструменты отладки/профилирования. Опытные программисты, вероятно, справятся с альтернативами, но новички могут столкнуться с трудностями.

5
ответ дан 24 November 2019 в 09:58
поделиться

Octave не имеет руководства, что делает создание графического интерфейса очень простым. Я регулярно использую руководство по созданию инструментов для моих коллег, не использующих MATLAB.

9
ответ дан 24 November 2019 в 09:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: