Я хочу изучать программирование на MATLAB, чтобы я мог проводить некоторые исследования / анализ самостоятельно, а также, чтобы я мог изучать / модифицировать некоторые скрипты MATLAB, которые я нашел в Интернете и т. Д.
Однако проблема в том, что я не могу позволить себе MATLAB. Как я слышал, GNU Octave вполне совместим с MATLAB. Проблема с Octave заключается в том, что документация очень скудная.
Таким образом, MATLAB, с одной стороны, слишком дорогой (-ve), но в нем есть много хорошей документации, учебных пособий и сценариев онлайн (+), а Octave бесплатен (как в пиве), хотя (по понятным причинам) ему не хватает исчерпывающей документации и т. Д. ,
Я думаю о загрузке и установке Octave, но использую документацию MATLAB (и скрипты), чтобы помочь мне начать работу. Я знаю, что между Octave и MATLAB есть некоторые различия - я пытаюсь выяснить, достаточно ли велики эти различия, чтобы помешать моим усилиям (эффективно) «изучить MATLAB с помощью Octave».
Любые конструктивные отзывы приветствуются.
Ответы:
Отказ от ответственности: я иногда раздражаюсь, когда кто-то пытается сказать мне, что, по его мнению, я должен делать, вместо того, чтобы отвечать на вопрос, который я задал. Но я собираюсь рискнуть и предложить вам альтернативу.
Я бы посоветовал взглянуть на пакеты научных вычислений Python: numpy , matplotlib и scipy . Вместе они предоставляют вам основную функциональность MATLAB (в некоторых случаях они дают больше, чем MATLAB). Они бесплатны и имеют открытый исходный код, и в настоящее время могут иметь более широкую пользовательскую базу, чем Octave. Большая часть научной вычислительной инфраструктуры в Python поддерживается Enthought Inc. , и я бы порекомендовал вам установить их бесплатный дистрибутив Enthought Python , который включает в себя все три упомянутых пакета и многое другое.
Конечно, есть некоторые особенности MATLAB (особенно в наборах инструментов, но у Octave их нет), которых нет в Python. Но я использую Python в сочетании с языками более низкого уровня для большей части моей работы, и это позволяет мне программировать на языке, почти таком же удобном, как MATLAB, взаимодействовать с множеством полезных пакетов, которых нет в MATLAB, и запускать такой же легко читаемый код на суперкомпьютере.
Изменить : вы также можете попробовать дистрибутив Anaconda Python из Continuum Analytics. Существует бесплатная версия, которая включает в себя все вышеперечисленные пакеты и многое другое.
источник
GNU Octave «в основном совместим с Matlab», некоторые тонкости означают, что не все скрипты переносимы из MATLAB в Octave.
Стоит прочитать документацию по языку и / или заметкам о совместимости в FAQ или в вики-книгах . Есть также портирование заметок .
Пакеты, похожие на наборы инструментов MATLAB, существуют, но вам нужно проверить их, чтобы понять, насколько они похожи. Также есть попытки преобразования сценариев, которые учитывают различия между двумя языками, но, насколько мне известно, ни один не идеален.
источник
Да, вы можете изучать MATLAB через Octave. Но синтаксис Octave менее строг и более соответствует современным языкам сценариев. В этом отношении MATLAB, похоже, отстает. Посмотрите эту вики-ссылку Программирование MATLAB / Различия между Octave и MATLAB
Другим важным отличием для меня было наличие определенных библиотек для MATLAB, но не для Octave.
источник
Для общего изучения программирования на M-языке и того, как работает MATLAB, да, Octave - это просто замечательно. Если вам нужен определенный набор инструментов как часть вашей работы, и никто не реализовал его бесплатную версию, то вам не повезло.
Студенческое издание MATLAB не так дорого. Если вы в университете, даже возможно, что у них есть лицензия на сайт. Вы должны изучить обе возможности.
источник
В прошлом я использовал взаимозаменяемо Octave и MATLAB для одного и того же фрагмента кода; У меня не было проблем с совместимостью. Насколько я могу судить, основные отличия:
#
или%
для комментариев, Matlab использует только%
источник
Это действительно возможно, особенно если вы используете GUI, такой как GUIOctave . Другим языком, который может оказаться полезным, поскольку для него написано много пакетов, является R. Существует также графический интерфейс для языка R, называемый RStudio, и документ перевода между R и MatLab .
источник
По поводу вашего вопроса:
я бы сказал да. Просто потому, что парадигмы и принципы совпадают. Различия в синтаксисе пренебрежимы и могут быть обобщены в шпаргалке (если вы работаете в основном с MATLAB один день).
Еще одно предложение для альтернативы: в
качестве альтернативы MATLAB я использую SciLab . Он бесплатный как Octave, имеет приличное сообщество, предоставляющее помощь и поддержку, и его документация довольно хорошая. Встроенная документация и справка по функциям аналогичны документации MATLAB. (Что мне больше всего нравится, так это возможность выполнять примеры одним щелчком мыши). Синтаксис похож на MATLAB также.
Что касается сходства и различий между SciLab и MATLAB, этот документ может быть вам интересен: Введение в Scilab с точки зрения пользователя Matlab, Эйке Ритч, май 2010 г. (PDF) .
Еще один плюс для SciLab по сравнению с MATLAB: запуск и графический интерфейс намного быстрее. Я еще не пробовал Octave.
источник
Практический пример:
Я использую MATLAB на работе, и я взял бесплатный онлайн-курс по машинному обучению в Стэнфорде в прошлом семестре.
Я сделал всю домашнюю работу в октаве.
Я заметил только два отличия (я использовал только основные функции):
источник
В интерпретации Octave языка программирования MATLAB есть некоторые тонкие различия. Octave использует "
endif
" и "endwhile
" для закрытияif
иwhile
операторов соответственно. Octave также позволяет объявлять функции в командной строке. Однако он должен анализировать все, что анализирует MATLAB, поэтому, если вы будете придерживаться языка программирования MATLAB, у вас все будет хорошо.Имейте в виду, что самые большие различия между этими двумя программами заключаются во встроенных функциях, которые выполняют большую часть числовых операций, например "
quad
", "ode15s
" и тому подобное. Однако все эти функции должны быть хорошо документированы при использовании команды «help
». Существуют также списки рассылки для Octave, если у вас есть более конкретные вопросы, которые не включены в онлайн-справку.источник
Да, вы можете, я сделал. Однако большая часть возможностей MATLAB поставляется с некоторыми из его чрезвычайно простых в использовании наборов инструментов и встроенных функций, которые могут иметь или не иметь эквиваленты в Octave.
Также имейте в виду, что хотя сами базовые языки совместимы (за исключением новых функций OO в MATLAB), у Octave есть несколько «дополнений» к синтаксису, например, возможность использовать «! =» Для NEQ, а также некоторые альтернативное поведение по умолчанию, например, как он анализирует встроенные функции. Это незначительные вещи, которые приведут к тому, что код Octave не будет запускаться в MATLAB сразу же, если вы не позаботились о том, чтобы не полагаться на такое поведение.
Кроме того, MATLAB - это полноценная вычислительная среда, а не просто язык, который взаимодействует с оптимизированными процедурами линейной алгебры. Так что то, что вы узнаете из Octave, пойдет так далеко. Вы будете работать в MATLAB, если вы хорошо владеете Octave, но вы не будете настолько продуктивны, как MATLAB.
источник
Лучший бесплатный язык с синтаксисом, похожим на MATLAB, - это Julia. Это также быстрее и имеет более обширную систему пакетов (среди прочих причин, почему это лучше ...), но синтаксис линейной алгебры практически одинаков (многие алгоритмы можно преобразовать в MATLAB, изменив
A[i]
для индексации наA(i)
). Я считаю, что это лучший язык для изучения прямо сейчас, и вы «случайно узнаете MATLAB», просто используя его.источник
Да, вы можете изучать Matlab, используя Octave. Конечно, есть некоторые ограничения.
Octave и Matlab имеют большую часть своего синтаксиса. В этом отношении они взаимозаменяемы. Опыт работы с Matlab более насыщен и удобен, особенно при работе с графикой, хотя у Octave есть новый графический интерфейс пользователя (GUI), который находится в бета-версии. Скорее всего, эти две системы будут сходиться по мере улучшения графической среды для Octave.
Существует множество бесплатных курсов на Coursera, которые дают вам бесплатную временную студенческую лицензию Matlab на время курса. Поиск курсов машинного обучения.
источник