R이 할 수없는 MATLAB은 무엇을 할 수 있습니까? [닫은]


137

사람들이 MATLAB 라이센스가 얼마나 비싸다고 불평하는 경우가 종종 있습니다. 그런 다음 왜 Octave 또는 R을 사용하지 않는지 궁금 합니다. 그러나 후자가 맞습니까? R을 사용하여 MATLAB을 대체 할 수 있습니까?


13
그런데, 또 다른 오픈 소스 대안이있다 : 옥타브 대부분 matlab에 호환
sellibitze

14
기술적으로 한 언어로 수행 할 수있는 모든 것은 어떤 언어로든 ( "무엇을 계산할 수있는"관점에서) 수행 할 수 있습니다. 사용의 용이성과 학습의 용이성에 관한 문제입니다
BlueRaja-Danny Pflughoeft

20
+1 : Matlab은 소프트웨어 예산을 삭감 할 수 있습니다. R은 아직이 작업을 수행하지 않았습니다.
반복자

3
다른 문장을 수정하려면 : Octave 또는 FreeMat에서 모든 Matlab 코드를 재사용 할 수있는 것은 올바르지 않습니다. 다른 버전에서는 전혀 구현되지 않은 함수 클래스가 있습니다. 나는 이러한 클래스의 함수와 거의 비슷한 기능을 가진 환경에서 새로 구현하는 것이 더 나은 큰 코드 블록을 가지고 있습니다. Matlab의 Octave가 제공하지 않는 기능 중 R, Python 및 Java 및 C에서 대리자를 발견했습니다. 라이브러리를 다시 구현하는 것은 기본 코드보다 어렵습니다. 라이브러리에주의를 기울이십시오.
Iterator

5
이 질문의 종결은 정당하지 않다. 이 질문은 폴링에 관한 것이 아니라 Matlab에서 정확히 할 수 있지만 R에서는 할 수없는 것에 관한 것입니다. 이러한 것들은 쉽게 참조하고 참조 할 수 있습니다.
Frank

답변:


128

R을 사용하여 MATLAB을 대체 할 수 있습니까?

예.

수년간 MATLAB을 사용했지만 지난 3 년 동안 주로 R로 전환했습니다. 이 시점에서 그들은 공통점이 아닙니다. 그것은 부분적으로 당신의 분야와 유스 케이스에 달려 있습니다. 그리고 스펜서 그레이브스 (Spencer Graves)가 이전말했듯이 , 그것은 "어떤 교회가 자주되는지"에 달려 있습니다. 결정하기 전에 특정 작업에 대해 MATLAB 툴킷CRAN비교해 보는 것이 가장 좋습니다 .

비슷한 질문이 몇 년 전 R-도움말을 요청 하고 다시 최근 . David Hiebeler (메인 대학교)는 광범위한 R / MATLAB 비교를 유지하며 주제에 대한 최상의 참조입니다. 이 기본 기능 비교를 검토 할 수도 있습니다 .

과거에 내가 관찰 한 것들 중 일부는 다음과 같습니다.

  • 일반적으로 MATLAB은 더 나은 프로그래밍 환경 (예 : 더 나은 문서화, 더 나은 디버거, 더 나은 객체 브라우저)을 가지며 사용하기 더 쉬워집니다 (원하는 경우 프로그래밍하지 않고도 MATLAB을 사용할 수 있음). Simulink를 사용하면 블록을 그래프로 연결하여 시각적으로 프로그래밍 할 수 있습니다. REvolution R은 개선 된 디버깅으로 더 나은 IDE를 제공함으로써 이러한 차이점 중 일부를 해결하고 있지만 여전히 뒤쳐져 있습니다.
  • MATLAB은 정상적인 구성에서는 조금 더 빠르지 만 ( 이 예제에서는이 벤치 마크 참조 ) 문제가되는 경우 R 성능을 개선하기 위해 수행 할 수있는 작업이 있습니다.
  • 상용이기 때문에 더 많은 "제품"(통합 애드온의 의미)과 지원 (하지만 비용을 지불)이있을 수 있습니다. 제품 목록을 참조하십시오 . 예를 들어, 배포 할 수있는 실행 가능한 MATLAB 프로그램을 만드는 MATLAB 컴파일러 와 같은 것이 있습니다.
  • 패키지 / 툴킷에 관한 한, MATLAB은 물리 과학에 대해 훨씬 더 많은 지원을하는 반면 R은 통계에 대해 더 강력하며, 다른 하나는 이러한 작업을 수행 할 수 없습니다. 그리고 둘 다 쉽게 확장 할 수 있습니다.

따라서 사용 편의성이 주요 관심사가 아닌 경우 (오픈 소스 도구 사용을 피해야하는 다른 비즈니스 이유가없는 경우) R을 사용하는 경우가 실제로있을 것이라고 생각합니다. 주변의 강력한 커뮤니티 (R 메일 링리스트는 훌륭합니다), 빠르게 발전하고 있으며 (CRAN 참조) 무료입니다 (작은 문제는 아닙니다!).

편집 : 나는 이것에 한 가지 더 덧붙일 것입니다 : "R과 MATLAB을 사용한 기능적 데이터 분석" 책 에는 "Malab과 R 언어의 필수 비교"에 관한 장이 포함되어 있습니다. 여기에는 중요한 구문 차이 (예 : 점 해석 또는 대괄호 []의 의미)가 포함됩니다. 이 책 자체는 기능적 프로그래밍에 관심이있는 사람이라면 어느 쪽이든 읽을 가치가있다.


5
쇼가 어떻게 각 여기에 해당하는 작업을 수행 할 수있는 좋은 matlab에 / R의 기준이있다 : math.umaine.edu/~hiebeler/comp/matlabR.html
Suppressingfire

4
"[MATLAB]은 또한 더 많은 제품과 지원을 가지고 있습니다". 나는 이것에 동의하지 않습니다. CRAN 및 Bioconductor (R 용)는 MATLAB + 도구 상자 + 파일 교환보다 훨씬 포괄적입니다. 또한 R-Help 메일 링리스트는 일반적으로 유료 지원만큼 효과적입니다. MATLAB 컴파일러가 R에서 복제되지 않은 훌륭한 기능이라는 것에 동의합니다.
Richie Cotton

2
많은 경우 R 함수가 Matlab의 함수보다 더 잘 문서화됩니다. Matlab 문서의 품질은 기능마다 (상업적) 툴박스마다 크게 다릅니다. Matlab IDE는 초보자에게 다소 친숙하지만 , 매일 사용하는 경우 ESS for R보다 낫지 는 않습니다 .
Matti Pastell

10
RStudio는 멋진 새로운 R IDE입니다
Jason Axelson

1
이 질문이 너무 나빴습니다. 이것은 내가 OverStack에서 본 최고의 기술 토론 중 하나입니다.
kd4ttc

32

R은 통계 데이터 분석 및 그래픽을위한 환경입니다. MATLAB의 기원은 수치 계산에 있습니다. 기본 언어 구현에는 데이터 조작 (예 : 행렬 / 벡터 연산)에 사용하는 경우 공통적으로 많은 기능이 있습니다.

R은 다른 곳에서 찾기 어려운 통계 기능을 가지고 있으며 (> CRAN의 2000 개 패키지 ) 많은 통계 학자들이이를 사용합니다. 반면에 MATLAB에는 엔지니어링 응용 프로그램을위한 많은 도구 상자가 있습니다.

  • 이미지 처리 / 이미지 획득
  • 필터 설계,
  • 퍼지 로직 / 퍼지 제어,
  • 편미분 방정식,
  • 기타

R에는 다양한 추가 기능을 제공하는 CRAN이라는 대형 패키지 저장소가 있습니다 (일반적인 사항에 동의하지만). 예 : PDE 솔버 : cran.r-project.org/web/packages/deSolve/index.html
Suppressingfire

7
MATLAB에는 CRAN과 유사한 기능이 있습니다. 10,000 개가 넘는 사용자가 제출 한 기능과 도구 상자를 자유롭게 사용할 수 있는 상당한 크기의 파일 교환 ( mathworks.com/matlabcentral/fileexchange ).
gnovice

2
MATLAB Central의 파일 교환 이외의 MATLAB을위한 상당한 규모의 무료 코드 기반도 있습니다.
예측 자

26

R과 MATLAB을 모두 사용하여 환경 공학과 관련된 문제를 해결하고 모델을 구축했으며 두 시스템간에 많은 중복이 있습니다. 제 생각에 MATLAB의 장점은 전문화 된 도메인 별 응용 프로그램에 있습니다. 몇 가지 예는 다음과 같습니다.

  • 유체 역학 조사를 돕는 유선형과 같은 기능.

  • 이미지 처리 도구 세트와 같은 도구 상자 유역 알고리즘과 같은 도구의 동등한 구현을 제공하는 R 패키지를 찾지 못했습니다.

제 생각에 MATLAB은 훨씬 더 나은 대화식 그래픽 기능을 제공합니다. 그러나 R은 응용 프로그램에 따라 더 나은 정적 인쇄 품질 그래픽을 생성한다고 생각합니다. MATLAB의 기호 수학 도구 상자는 Ryacas 또는 rSymPy와 같은 R 등가물보다 더 잘 통합되고 기능이 뛰어납니다. MATLAB 컴파일러가 있으면 MATLAB 코드를 기반으로하는 시스템을 MATLAB 환경과 독립적으로 배포 할 수 있지만 가용성은 돈을 얼마나 버려야 하는가에 달려 있습니다.

내가 주목해야 할 또 다른 사항은 MATLAB 디버거가 내가 작업 한 것 중 최고라는 것입니다.

R에서 볼 수있는 주요 장점은 시스템의 개방성과 확장이 용이하다는 것입니다. 이로 인해 CRAN에서 패키지가 엄청나게 다양해졌습니다. Mathworks는 사용자 제공 도구 상자의 저장소를 유지 관리하고 많이 사용하지 않았으므로 공정하게 비교할 수 없습니다.

R의 개방성은 컴파일 된 코드에서 링크로 확장됩니다. 얼마 전 Fortran으로 작성된 모델이 있었고 입력 및 프로세스 결과를 준비하는 데 도움이되도록 프런트 엔드로 R 또는 MATLAB을 사용하기로 결정했습니다. 컴파일 된 코드에 대한 MEX 인터페이스에 대해 한 시간을 읽었습니다. 인터페이스를 관리하기 위해 복잡한 포인터 저글링을 수행하는 별도의 포트란 루틴을 작성하고 유지해야한다는 것을 알았을 때 MATLAB을 보류했습니다.

R 인터페이스는 .Fortran ([서브 루틴 이름], [인수 목록])을 호출하는 것으로 구성되며 더 빠르고 깔끔합니다.


11
또한 R은 재현 가능한 연구를 가능하게하는 Sweave 시스템에 대한 저의 책에서 큰 장점을 얻었습니다. 누구나 자유롭게 사용할 수있는 도구를 사용하여 종이나 보고서 뒤에있는 계산을 다시 실행하고 분석 할 수 있도록하는 것이 매우 중요합니다.
Sharpie

22

MATLAB의 R보다 큰 장점 중 하나는 MATLAB 문서의 품질입니다. 오픈 소스 인 R은 이러한 점에서 많은 오픈 소스 프로젝트에 공통적 인 기능을 겪습니다.

그러나 R은 매우 유용한 환경과 언어입니다. 생물 정보학 커뮤니티에서 널리 사용되며이 영역에서 유용한 많은 패키지가 있습니다.

R의 대안은 MATLAB과 매우 유사한 Octave ( http://www.gnu.org/software/octave/ )이며 MATLAB 스크립트를 실행할 수 있습니다.


2
모든 R 제출 패키지는 문서 및 예제에 대해 테스트됩니다.
페르난도

21

필자의 경험에 따르면 MATLAB에서 Python으로 전환하는 것이 더 쉽습니다. numpy / scipy를 사용하는 Python은 R보다 스타일 및 기능 측면에서 MATLAB에 더 가깝습니다. 오픈 소스 직접 MATLAB 클론 OctaveScilab도 있습니다.

MATLAB이 할 수없는 일이 많이 있습니다. 내 영역에서 MATLAB은 실시간 데이터 수집에 많이 사용됩니다. 대부분의 하드웨어 회사에는 MATLAB 인터페이스가 포함되어 있습니다. 이것이 RI로 가능할 수는 있지만 훨씬 더 복잡 할 것이라고 상상해보십시오. 또한 Simulink는 R에서 누락되었다고 생각되는 전체 기능 영역을 제공합니다. 더있을 것이지만 R에 익숙하지는 않습니다.


11

짧은 대답 : 아니요, 물론 아닙니다. 모든 수학적 소프트웨어 패키지는 겹치지 만 항상 특정 문제 영역에 대한 편견이 있습니다. 이러한 바이어스는 이러한 패키지 중 하나를 사용할지 여부를 강력하게 나타냅니다.

MATLAB이 R이 할 수없는 일의 예는 신호 처리 / 획득 및 제어를위한 실시간 하드웨어에 대한 인터페이스입니다. MATLAB 의 Simulink 모델은 측정 데이터를 입력으로 사용하고 적절한 출력을 계산하는 실제 시스템에서 실행할 코드를 컴파일하기 전에 머신에서 시뮬레이션으로 실행되도록 구성 할 수 있습니다 (제어 시스템의 시뮬레이션 이전의 기능은 이제 완전히 작동 함) 하나). 컴퓨터에 적절한 하드웨어 보드가 있으면 PC를 통해 실시간 제어 시스템을 실행할 수 있습니다.

반대로 R은 통계의 역할에 확고하게 자리 잡은 것으로 보입니다. 마찬가지로 Mathematica 는 기호 수학에서 MATLAB보다 낫습니다. 파이썬은 일반 프로그래밍에서 MATLAB보다 낫습니다. gnuplot 은 실제로 그래프를 작성할 때 모든 것보다 낫습니다 (또는 가정합니다). 등등.


11
R은 실제로 그래프 작성에 매우 유용한 것으로 알려져 있습니다. 그들은 매우 좋아 보인다. 실제로 R을 조사해야하는 첫 번째 이유는 R을 사용하여 동료들이 만든 멋진 그래프 중 일부에 대해 질투심이 많았 기 때문입니다.
Frank

11

위에 주어진 많은 답변에 동의합니다. 대답은 MATLAB 및 R 기능의 차이점에 대한 것이므로 매우 중요한 것을 언급 할 것입니다. MATLAB에는 JVM이 포함되어 있으며 Java와의 완벽하고 강력한 상호 운용성이 있습니다. MATLAB 사용자는 모든 Java의 광범위한 라이브러리에 액세스 할 수 있습니다. MATLAB IDE는 거의 가난한 사람의 이클립스로 사용할 수 있습니다. 이에 비해 rJava는 개발자 (Roman Francois)의 귀중한 노력에도 불구하고 미숙합니다.


9

고객이 기대하거나 요구하기 때문에 할 수 없습니다.


3
이것은 완전히 유효한 답변입니다. 오픈 소스 솔루션을 받아들이지 않는 산업이 많이 있다는 것을 인식하는 것이 중요합니다. 플레이트의 R을 취하는 의심스러운 준수 요구 사항이 있습니다.
Brandon Bertelsen

1
@BrandonBertelsen : 구체적으로, 무엇?
smci

3
@smci는 그 진술이 더 이상 2010 년처럼 사실이 아니라고 말합니다.
Brandon Bertelsen 2016 년

알았지 만 2010 년 현재 R이 어떤 규정 준수 요구 사항을 충족 시켰는지 (그리고 여전히 문제가되는지) 알려 주실 수 있습니까?
smci

1
우리 고객들은 일반적으로 MATLAB을 사용하기 때문에 종종 코드와 모델을 그들과 교환해야합니다. 일반적으로 R을 사용하는 산업은 주로 데이터 세트 및 통계와 관련이 있습니다.
Nzbuu

5

sqldf 패키지를 사용하면 시스템에 충분한 RAM이 있다고 가정하면 R은 통계뿐만 아니라 심각한 데이터 마이닝도 수행 할 수 있습니다.

RServe 패키지와 함께 R은 일반 TCP / IP 서버가됩니다. 그래서 자바에서 R (또는 API가있는 경우 다른 언어)에서 R을 호출 할 수 있습니다. R에는 java out 또는 R을 호출하는 패키지도 있습니다.


사실이지만 질문은 "R이 할 수없는 MATLAB은 무엇을 할 수 있습니까?"입니다. "R은 MATLAB이 무엇을 할 수 없습니까?"
Marek

4

MATLAB과 R을 모두 사용하는 사용자는 매우 다른 응용 프로그램이라고 생각합니다. 나 자신은 컴퓨터 과학 등에 대한 배경 지식이 있으며 R은 통계 학자에게는 통계 학자이고 MATLAB은 프로그래머에게는 프로그래머라고 생각할 수 없다.

R은 모든 종류의 통계 자료를 시각화하고 계산하는 것이 매우 쉽지만, 그것이 나에게 달려 있다면 신호 처리와 관련된 것은 구현하지 않을 것입니다.

요약하면 통계를 수행하려면 R을 사용하십시오. 프로그래밍하려면 MATLAB 또는 일부 프로그래밍 언어를 사용하십시오.


4
하나 R는 프로그래밍 언어입니다.
Frank

6
"Matlab은 프로그래머를위한 프로그래머입니다." MATLAB은 원래 선형 대수학을 위해 특별히 작성되었습니다. 범용 프로그래밍 언어가 아니 었습니다. 그 후 많은 범용 언어 기능이 사용되었습니다. (1 년 동안 작동 가능한 객체 지향 시스템 만있었습니다.)
Richie Cotton

9
"Matlab은 프로그래머를위한 프로그래머에 의한 것입니다": 진심입니까? 실제로 MATLAB으로 나를 괴롭히는 유일한 것은 언어를 발명 한 사람이 일부 상황에서 언어의 극도의 어색함을 감안할 때 프로그래머가 아니라는 것입니다.
Hannes Ovrén

13
R은 통계 학자에 의해 만들어졌고 Matlab은 엔지니어에 의해 만들어졌습니다. 둘 다 완벽하게 가능한 프로그래밍 언어입니다.
Sharpie

3
@smci 마지막으로 R 코드 용 Matlab 코드를 교체 한 것은 2008 년에 National Weather Service에 있었으며 그 이후 시스템은 오류없이 실행되었습니다. 재귀 알고리즘을 사용하여 멀티 기가 바이트 데이터 세트의 코어 내 처리는 결코 과학 컴퓨팅 전체를 대표하는 작업이 아니며, 따라서 프로그래밍 언어의 적합성에 대한 일반적인 진술을하기위한 벤치 마크를 제대로 선택하지 못합니다.
Sharpie

2

대화식 그래픽 지원은 R보다 MATLAB에서 훨씬 낫습니다. Matlab을 언어로 싫어하지만 사용자가 마우스 조작으로 데이터를 탐색하는 방법을 볼 때 질투심이 생깁니다 xlim. Matlab은 또한 작업에 대한 R 방법보다 다중 패널 플롯을 훨씬 잘 처리합니다. 일반적으로 R 그래픽은 1960 년대 느낌입니다. 출판에는 적합하지만 대화식 데이터 탐색을위한 최상의 솔루션은 아닙니다.


두 시스템의 대화식 플로팅 도구를 많이 사용하는 사용자는 한계에 동의 할 것입니다 (즉, 두 가지를 모두 강요하는 것처럼).하지만 R에서 매우 유용한 대화식 그래프 도구를 놓칠 수 있습니다. : iplots, Acinonyx, Rstudio의 조작 등 재미있게 보려면 이 예제를 확인하십시오 .
반복자

"R 그래픽의 느낌은 1960 년대입니다." 요즘 ggplot2가 빠르게 인기를 얻고 있으면 R 차트는 현대적이고 아름다운 모습을 보입니다. 예를 들어 : r-bloggers.com/?s=ggplot
arielf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.