Что может MATLAB сделать такого, чего не может R?[закрыто]

StackOverflow https://stackoverflow.com/questions/1738087

  •  20-09-2019
  •  | 
  •  

Вопрос

Я часто слышу, как люди жалуются, насколько дорого MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ лицензии есть.Тогда я удивляюсь, почему они просто не используют Октава или R.Но верно ли последнее?Можете ли вы использовать R для замены MATLAB?

Это было полезно?

Решение

Можете ли вы использовать R для замены MATLAB?

ДА.

Я использовал MATLAB в течение многих лет, но за последние 3 года переключился в основном на R.На данный момент у них гораздо больше общего, чем нет.Это частично зависит от вашей области и варианта использования.И как Спенсер Грейвс сказал ранее, это также зависит от того, в какую "церковь вы часто ходите".Будет лучше, если вы посмотрите на Инструментарий MATLAB против. КЛЮВ для конкретной задачи, которую вы должны решить.

Аналогичный вопрос обратился в R-Help несколько лет назад и снова , совсем недавно. David Hiebeler (в Университете штата Мэн) поддерживает обширную Сравнение R /MATLAB, и является лучшей ссылкой по этому вопросу.Вы также можете просмотреть это сравнение основных функций.

Вот некоторые из вещей, которые я наблюдал в прошлом, ни одна из которых не должна нарушать сделку.

  • Как правило, MATLAB имеет лучшую среду программирования (напримерлучшая документация, лучшие отладчики, лучший обозреватель объектов) и "проще" в использовании (вы можете использовать MATLAB без какого-либо программирования, если хотите). Одновременный переход позволяет визуально программировать, соединяя блоки в виде графиков. REvolution R устраняет некоторые из этих различий предоставляя лучшую IDE с улучшенной отладкой, но она все еще на шаг отстает.
  • MATLAB работает немного быстрее при обычной конфигурации (смотрите этот тест для примера), хотя есть вещи, которые можно сделать для повышения производительности R, если это станет проблемой.
  • Поскольку он коммерческий, в нем также, возможно, больше "продуктов" (в смысле интегрированных дополнений) и поддержки (но вы платите за это).Смотрите на список продуктов.Например, в нем есть такие вещи, как компилятор MATLAB который создает исполняемые программы MATLAB, которые могут быть развернуты.
  • Что касается пакетов / наборов инструментов, MATLAB имеет гораздо большую поддержку для физических наук, в то время как R сильнее для статистики, что не означает, что другой не может выполнять эти задачи.И они оба могут быть легко расширены.

Итак, если простота использования не является первостепенной задачей (и нет других бизнес-причин избегать использования инструмента с открытым исходным кодом), то я думаю, что есть реальные аргументы в пользу использования R.Вокруг него очень сильное сообщество (списки рассылки R потрясающие), оно быстро развивается (см. CRAN), и это Бесплатно (что является немалой проблемой!).

Редактировать: Я бы просто добавил к этому еще один момент:книга "Функциональный анализ данных с помощью R и MATLAB" включает главу, посвященную "Основным сравнениям языков Matlab и R".Это касается некоторых важных синтаксических различий (таких как интерпретация точки или значение квадратных скобок []).Саму книгу стоит прочитать всем, кто интересуется функциональным программированием (на любом языке).

Другие советы

R - это среда для статистического анализа данных и графики.Истоки MATLAB лежат в области численных вычислений.Реализации базового языка имеют много общих черт, если вы используете их для манипулирования данными (например, операции с матрицей / вектором).

R обладает статистической функциональностью, которую трудно найти в другом месте (> 2000 пакетов на КЛЮВ), и многие статистики используют его.С другой стороны, MATLAB имеет множество (дорогих) наборов инструментов для инженерных приложений, таких как

  • обработка изображений / получение изображений,
  • конструкция фильтра,
  • нечеткая логика /нечеткое управление,
  • дифференциальные уравнения в частных производных,
  • и т.д.

Я использовал как R, так и MATLAB для решения задач и построения моделей, связанных с проектированием окружающей среды, и между этими двумя системами существует много совпадений.На мой взгляд, преимущества MATLAB заключаются в специализированных приложениях для конкретной предметной области.Вот некоторые примеры:

  • Такие функции, как рационализация, которые помогают в исследованиях динамики жидкости.

  • Наборы инструментов, такие как набор инструментов для обработки изображений.Я не нашел R-пакета, который обеспечивал бы эквивалентную реализацию таких инструментов, как алгоритм watershed.

На мой взгляд, MATLAB предоставляет гораздо лучшие возможности интерактивной графики.Однако я думаю, что R обеспечивает лучшее статическое качество печати графики, в зависимости от приложения.Набор инструментов символьной математики MATLAB также лучше интегрирован и обладает большими возможностями, чем R-эквиваленты, такие как Ryacas или rSymPy.Существование компилятора MATLAB также позволяет развертывать системы, основанные на коде MATLAB, независимо от среды MATLAB - хотя его доступность будет зависеть от того, сколько денег вам придется потратить.

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

Принципиальное преимущество, которое я вижу в R, - это открытость системы и легкость, с которой ее можно расширить.Это привело к невероятному разнообразию пакетов на CRAN.Я знаю, что Mathworks также поддерживает репозиторий пользовательских наборов инструментов, и я не могу провести справедливое сравнение, поскольку я не так часто им пользовался.

Открытость R также распространяется на компоновку в скомпилированном коде.Некоторое время назад у меня была модель, написанная на Fortran, и я пытался выбрать между использованием R или MATLAB в качестве интерфейса для подготовки входных данных и обработки результатов.Я потратил час, читая об интерфейсе MEX для скомпилированного кода.Когда я обнаружил, что мне придется написать и поддерживать отдельную подпрограмму Fortran, которая выполняла бы некоторое сложное манипулирование указателями для управления интерфейсом, я отложил MATLAB.

Интерфейс R состоит из вызова .Fortran( [имя подпрограммы], [список аргументов]) просто быстрее и чище.

Одним из больших преимуществ MATLAB перед R является качество документации MATLAB.R, будучи открытым исходным кодом, страдает в этом отношении особенностью, общей для многих проектов с открытым исходным кодом.

R, однако, является очень полезной средой и языком.Он широко используется в сообществе биоинформатиков и имеет множество пакетов, полезных в этой области.

Альтернативой R является Октава (http://www.gnu.org/software/octave/) который очень похож на MATLAB, он может запускать скрипты MATLAB.

По моему опыту, переход с MATLAB на Python является более простым переходом - Python с numpy/скипи ближе к MATLAB с точки зрения стиля и возможностей, чем R.Существуют также прямые клоны MATLAB с открытым исходным кодом Октава и Scilab ( Скалаба ).

Безусловно, MATLAB может многое, чего не может R - в моей области MATLAB часто используется для получения данных в реальном времени - большинство производителей оборудования включают интерфейсы MATLAB.Хотя это может быть возможно с R, я полагаю, что это было бы намного сложнее.Кроме того, Simulink предоставляет целую область функциональности, которой, я думаю, не хватает в R.Я уверен, что есть еще что-то, но я не так хорошо знаком с R.

Короткий ответ:нет, конечно, нет.Хотя любой набор пакетов математического программного обеспечения будет иметь свои совпадения, они всегда будут иметь предубеждения по отношению к определенным проблемным областям.Эти предубеждения сильно влияют на то, хотите ли вы использовать один из этих пакетов или нет.

Пример того, что MATLAB может сделать, чего не может R, - это интерфейс к оборудованию реального времени для обработки / сбора сигналов и управления.A Одновременный переход модель в MATLAB может быть настроена как для запуска в режиме симуляции на вашем компьютере, так и для компиляции кода для выполнения в реальной системе, принимающей измеренные данные в качестве входных данных и вычисляющей соответствующие выходные данные (то, что раньше было симуляцией системы управления, теперь является полностью функционирующей).Имея соответствующую аппаратную плату в вашем компьютере, вы можете запускать системы управления в режиме реального времени через ПК.

R, напротив, кажется прочно утвердившимся в роли статистики, где, я уверен, он превосходит то, что может сделать MATLAB.Аналогично, Математика лучше, чем MATLAB в символьной математике;Python лучше MATLAB в общем программировании; gnuplot ( гнуплот ) лучше, чем все они, на самом деле создает графики (э-э, я полагаю);и так далее.

Я согласен со многими ответами, приведенными выше.Поскольку ответ специфичен для различий в возможностях MATLAB и R, я упомяну очень важный:MATLAB включает в себя JVM и обладает безупречной и надежной совместимостью с Java.Вся обширная вселенная библиотек Java доступна пользователю MATLAB.IDE MATLAB можно использовать почти как Eclipse для бедняков.По сравнению с этим, rJava очень незрелая, несмотря на очень ценные усилия ее создателя (Романа Франсуа).

Мы не можем, потому что этого ожидают / требуют наши клиенты.

С пакетом sqldf R способен не только собирать статистику, но и выполнять серьезный интеллектуальный анализ данных - при условии, что на вашем компьютере достаточно оперативной памяти.

А с пакетом RServe R становится обычным сервером TCP / IP;таким образом, вы можете вызвать R из java (или любого другого языка, если у вас есть API).В R также есть пакет для вызова java out или R.

Как пользователь как MATLAB, так и R, я думаю, что это очень разные приложения.У меня самого есть образование в области компьютерных наук и т.д.и я не могу отделаться от мысли, что R создан статистиками для статистиков, тогда как MATLAB создан программистами для программистов.

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

Подводя итог, если вы хотите вести статистику, используйте R.Если вы хотите программировать, используйте MATLAB или какой-нибудь другой язык программирования.

Поддержка интерактивной графики в matlab намного лучше , чем в R.Я ненавижу matlab как язык, но я начинаю завидовать, когда вижу, как его пользователи могут просматривать данные с помощью мыши, в то время как я занят повторением команд с новыми значениями для xlim и т.д.Matlab также обрабатывает многопанельные графики намного лучше, чем любой из R-методов для этой задачи.Как правило, R graphics выдержана в стиле 1960-х годов.Это прекрасно для публикации, но не лучшее решение для интерактивного изучения данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top