Co MATLAB może zrobić, czego R nie może zrobić? [zamknięte]

Często słyszę, jak ludzie narzekają, jak drogie są licencje MATLAB. W takim razie zastanawiam się, dlaczego nie używają po prostu oktawy lub R . Ale czy to drugie ma rację? Czy można użyć R, aby zastąpić MATLAB?

Author: Ry-, 2009-11-15

11 answers

Czy można użyć R, aby zastąpić MATLAB?

Tak.

Używałem MATLAB przez lata, ale przestawiłem się głównie na R w ciągu ostatnich 3 lat. W tym momencie mają znacznie więcej wspólnego niż nie. Częściowo zależy to od dziedziny i zastosowania. I jak powiedział wcześniej Spencer Graves, zależy również od tego, w którym "kościele bywasz często". Najlepiej, jeśli spojrzysz na MATLAB toolkit vs. CRAN dla konkretnego zadania, zanim zdecydujesz.

A podobne pytanie zadane na R-Help kilka lat temu i ponownie ostatnio . [[19]}David Hiebeler [[8]} (na Uniwersytecie Maine) utrzymuje rozległą porównanie R / MATLAB, i jest najlepszym odniesieniem w tym temacie. Możesz również przejrzeć to porównanie podstawowych funkcji .

Oto niektóre z rzeczy, które zaobserwowałem w przeszłości, z których żadna nie powinna być łamaniem umów.
  • ogólnie MATLAB ma lepsze środowisko programistyczne (np. lepsza dokumentacja, lepsze debuggery, lepsza przeglądarka obiektów) i jest "łatwiejsze" w użyciu (możesz używać Matlaba bez programowania, jeśli chcesz). Simulink pozwala na wizualne Programowanie poprzez łączenie bloków w wykresach. REvolution R rozwiązuje niektóre z tych różnic , dostarczając lepsze IDE z ulepszonym debugowaniem, ale wciąż jest o krok w tyle.
  • MATLAB jest nieco szybszy z normalną konfiguracją (zobacz to benchmark dla przykładu ), chociaż są rzeczy, które można zrobić, aby poprawić wydajność R, jeśli stanie się to problemem.
  • ponieważ jest komercyjny, prawdopodobnie ma również więcej "produktów" (w sensie zintegrowanych dodatków) i wsparcia (ale płacisz za to). Zobacz listę produktów . Na przykład, ma rzeczy takie jak kompilator MATLAB, który tworzy wykonywalne programy MATLAB, które można wdrożyć.
  • jeśli chodzi o Pakiety/Zestawy narzędzi, MATLAB ma znacznie większe wsparcie dla nauk fizycznych, podczas gdy R jest silniejsze dla statystyki, co nie znaczy, że drugi nie może wykonywać tych zadań. I można je łatwo rozszerzyć.

Tak więc, jeśli łatwość użycia nie jest głównym problemem (i nie ma innego powodu biznesowego, aby unikać korzystania z narzędzia open-source), to myślę, że istnieje prawdziwy powód do korzystania z R. ma bardzo silną społeczność wokół niego (listy dyskusyjne R są niesamowite), szybko się rozwija (patrz CRAN), i to jest bardzo ważne. za darmo (co nie jest małym problemem!).

Edit: chciałbym tylko dodać jeszcze jeden punkt do tego: książka "Analiza danych funkcjonalnych z R I MATLAB" zawiera rozdział na temat "podstawowe porównania języków Matlab i R". Obejmuje to pewne istotne różnice w składni (takie jak interpretacja kropki lub znaczenie nawiasów kwadratowych []). Sama książka jest warta przeczytania dla wszystkich zainteresowanych programowaniem funkcjonalnym (w język).

 128
Author: Shane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-03 23:49:11

R jest środowiskiem do analizy danych statystycznych i Grafiki. Początki MATLAB są w obliczeniach numerycznych. Implementacje języka podstawowego mają wiele wspólnych cech, jeśli używasz ich do manipulacji danymi (np. operacje macierzowe/wektorowe).

R ma funkcjonalność statystyczną, którą trudno znaleźć gdzie indziej (>2000 pakietów na CRAN), i korzysta z niej wielu statystyków. Z drugiej strony, MATLAB ma wiele (drogich) skrzynek narzędziowych do zastosowań inżynierskich jak

  • przetwarzanie obrazu / akwizycja obrazu,
  • Konstrukcja filtra,
  • Fuzzy logic / fuzzy control,
  • Równania różniczkowe cząstkowe,
  • itd.
 32
Author: rcs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-17 09:34:27

Używałem zarówno R jak i MATLAB do rozwiązywania problemów i konstruowania modeli związanych z inżynierią środowiska i istnieje wiele nakładania się obu systemów. Moim zdaniem zalety MATLAB leżą w wyspecjalizowanych aplikacjach specyficznych dla domeny. Niektóre przykłady to:

  • Funkcje takie jak usprawnienie, które pomagają w badaniach dynamiki płynów.

  • Skrzynki narzędziowe, takie jak zestaw narzędzi do przetwarzania obrazu. Nie znalazłem pakietu R, który zapewnia równoważna implementacja narzędzi takich jak algorytm watershed.

Moim zdaniem MATLAB zapewnia znacznie lepsze możliwości grafiki interaktywnej. Myślę jednak, że R produkuje lepszą statyczną grafikę o jakości druku, w zależności od aplikacji. Symboliczny zestaw narzędzi matematycznych MATLAB jest również lepiej zintegrowany i bardziej wydajny niż odpowiedniki R, takie jak Ryacas lub rSymPy. Istnienie kompilatora MATLAB pozwala również na wdrożenie systemów opartych na kodzie MATLAB niezależnie od Środowisko MATLAB - chociaż jego dostępność będzie zależeć od tego, ile pieniędzy trzeba wyrzucić.

Kolejną rzeczą, którą powinienem zauważyć jest to, że debugger MATLAB jest jednym z najlepszych, z którymi pracowałem.

Główną zaletą, jaką widzę w R, jest otwartość systemu i łatwość, z jaką można go rozszerzyć. Spowodowało to niesamowitą różnorodność pakietów na CRAN. Wiem, że Mathworks prowadzi również repozytorium skrzynek narzędziowych i nie mogę zrobić sprawiedliwego porównanie, ponieważ nie używałem go zbyt często.

Otwartość R rozszerza się również na linkowanie w skompilowanym kodzie. Jakiś czas temu miałem model napisany w Fortranie i próbowałem zdecydować, czy używać R lub MATLAB jako front-endu, aby pomóc w przygotowaniu danych wejściowych i wyników procesu. Spędziłem godzinę czytając o interfejsie MEX do skompilowanego kodu. Kiedy odkryłem, że będę musiał napisać i utrzymać osobną procedurę Fortran, która wykonała skomplikowane żonglowanie wskaźnikami w celu zarządzania interfejsem, półka MATLAB.

Interfejs R polega na wywołaniu .Fortran ([nazwa podprogramu], [lista argumentów]) i jest po prostu szybszy i czystszy.

 26
Author: Sharpie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-03 21:05:21

Dużą zaletą MATLAB nad R jest jakość dokumentacji MATLAB. R, będąc open source, cierpi w tym zakresie, cecha wspólna dla wielu projektów open source.

R jest jednak bardzo użytecznym środowiskiem i językiem. Jest szeroko stosowany w społeczności bioinformatycznej i ma wiele pakietów przydatnych w tej dziedzinie.

Alternatywą dla R jest Oktawa (http://www.gnu.org/software/octave/) który jest bardzo podobny do MATLAB, może uruchomić MATLAB Skrypty.

 22
Author: John,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-29 09:09:13

Z mojego doświadczenia wynika, że przejście z Matlaba do Pythona jest łatwiejsze - Python z numpy / scipy jest bliższy MATLABOWI pod względem stylu i funkcji niż R. istnieją również klony Open source direct MATLAB Octavei Scilab.

Jest na pewno wiele, że MATLAB może zrobić, że R nie może - w moim obszarze MATLAB jest często używany do pozyskiwania danych w czasie rzeczywistym-większość firm sprzętowych zawiera interfejsy MATLAB. Chociaż może to być możliwe z R wyobrażam sobie, że byłoby dużo bardziej zaangażowana. Również Simulink zapewnia cały obszar funkcjonalności, którego myślę, że brakuje w R. jestem pewien, że jest więcej, ale nie jestem tak zaznajomiony z R. {]}

 21
Author: robince,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-03 21:08:04

Krótka odpowiedź: nie, oczywiście, że nie. Podczas gdy każdy zestaw pakietów oprogramowania matematycznego będzie miał swoje nakładanie się, zawsze będą one miały uprzedzenia w stosunku do pewnych domen problemowych. Te uprzedzenia mają duży wpływ na to, czy chcesz użyć jednego z tych pakietów.

Przykładem tego, co MATLAB może zrobić, czego R nie może, jest interfejs do sprzętu czasu rzeczywistego do przetwarzania/akwizycji sygnału i sterowania. Model Simulink w MATLAB może być skonfigurowany zarówno do pracy w symulacji na komputerze przed skompilowaniem kodu do wykonania na rzeczywistym systemie pobierając dane pomiarowe jako dane wejściowe i obliczając odpowiednie wyjścia (to, co było wcześniej symulacją systemu sterowania, jest teraz w pełni funkcjonalne). Dzięki odpowiedniej płytce sprzętowej w komputerze można uruchamiać systemy sterowania w czasie rzeczywistym za pośrednictwem komputera.

R natomiast wydaje się mocno osadzony w roli statystyki, gdzie jestem pewien, że out-wykonuje to, co MATLAB może zrobić. Podobnie, Mathematica jest lepsza od MATLAB w symbolice Python jest lepszy od MATLAB w programowaniu ogólnym; gnuplot {[4] } jest lepszy od wszystkich w tworzeniu Wykresów (er, zakładam); i tak dalej.

 11
Author: Will Robertson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-31 10:15:54

Zgadzam się z wieloma odpowiedziami podanymi powyżej. Ponieważ odpowiedź jest specyficzna dla różnic w możliwościach MATLAB i R, wspomnę o bardzo ważnym: MATLAB zawiera JVM i ma bezbłędną i solidną interoperacyjność z Javą. Wszystkie rozległe biblioteki Javy są dostępne dla użytkownika MATLAB. MATLAB IDE może być prawie używany jako zaćmienie biednego człowieka. Dla porównania, rJava jest bardzo niedojrzała, pomimo bardzo cennego wysiłku jej twórcy (Roman Francois).

 11
Author: gappy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-24 12:46:46

Nie możemy, ponieważ jest to oczekiwane/wymagane przez naszych klientów.

 9
Author: Nzbuu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-27 19:09:07

Z pakietem sqldf, R jest zdolny nie tylko do statystyk, ale także do poważnego eksploracji danych-zakładając, że na twoim komputerze jest wystarczająco dużo pamięci RAM.

I z pakietem RServe r staje się zwykłym serwerem TCP / IP, więc możesz wywołać R z Javy (lub dowolnego innego języka, jeśli masz api). Istnieje również pakiet W R do wywołania Javy out lub R.

 5
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-10 18:46:57

Jako użytkownik zarówno MATLAB, jak i R, myślę, że są to bardzo różne aplikacje. Ja sam mam doświadczenie w informatyce itp. i nie mogę przestać myśleć, że R jest przez statystyków dla statystyków, podczas gdy MATLAB jest przez programistów dla programistów.

R sprawia, że bardzo łatwo jest wizualizować i obliczać wszelkiego rodzaju statystyczne rzeczy, ale nie używałbym go do implementacji niczego związanego z przetwarzaniem sygnałów, gdyby to zależało ode mnie.

Podsumowując, jeśli chcesz robić statystyki, użyj R. Jeśli chcesz zaprogramować, użyć MATLAB lub jakiegoś języka programowania.

 4
Author: lhahne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-03 21:06:45

Wsparcie dla grafiki interaktywnej jest znacznie lepsze w Matlabie niż w R. nienawidzę Matlaba jako języka, ale jestem zazdrosny, gdy widzę, jak jego użytkownicy mogą eksplorować dane za pomocą operacji myszy, podczas gdy jestem zajęty powtarzaniem poleceń z nowymi wartościami dla xlim itp. Matlab obsługuje również wykresy wielu paneli znacznie lepiej niż jakakolwiek z metod R dla zadania. Ogólnie rzecz biorąc, grafika R ma klimat z lat 60. Nadaje się do publikacji, ale nie jest najlepszym rozwiązaniem do interaktywnej eksploracji danych.

 2
Author: dank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-23 12:17:24