사람들이 MATLAB 라이센스가 얼마나 비싸다고 불평하는 경우가 종종 있습니다. 그런 다음 왜 Octave 또는 R을 사용하지 않는지 궁금 합니다. 그러나 후자가 맞습니까? R을 사용하여 MATLAB을 대체 할 수 있습니까?
사람들이 MATLAB 라이센스가 얼마나 비싸다고 불평하는 경우가 종종 있습니다. 그런 다음 왜 Octave 또는 R을 사용하지 않는지 궁금 합니다. 그러나 후자가 맞습니까? R을 사용하여 MATLAB을 대체 할 수 있습니까?
답변:
R을 사용하여 MATLAB을 대체 할 수 있습니까?
예.
수년간 MATLAB을 사용했지만 지난 3 년 동안 주로 R로 전환했습니다. 이 시점에서 그들은 공통점이 아닙니다. 그것은 부분적으로 당신의 분야와 유스 케이스에 달려 있습니다. 그리고 스펜서 그레이브스 (Spencer Graves)가 이전 에 말했듯이 , 그것은 "어떤 교회가 자주되는지"에 달려 있습니다. 결정하기 전에 특정 작업에 대해 MATLAB 툴킷 과 CRAN 을 비교해 보는 것이 가장 좋습니다 .
비슷한 질문이 몇 년 전 R-도움말을 요청 하고 다시 최근 . David Hiebeler (메인 대학교)는 광범위한 R / MATLAB 비교를 유지하며 주제에 대한 최상의 참조입니다. 이 기본 기능 비교를 검토 할 수도 있습니다 .
과거에 내가 관찰 한 것들 중 일부는 다음과 같습니다.
따라서 사용 편의성이 주요 관심사가 아닌 경우 (오픈 소스 도구 사용을 피해야하는 다른 비즈니스 이유가없는 경우) R을 사용하는 경우가 실제로있을 것이라고 생각합니다. 주변의 강력한 커뮤니티 (R 메일 링리스트는 훌륭합니다), 빠르게 발전하고 있으며 (CRAN 참조) 무료입니다 (작은 문제는 아닙니다!).
편집 : 나는 이것에 한 가지 더 덧붙일 것입니다 : "R과 MATLAB을 사용한 기능적 데이터 분석" 책 에는 "Malab과 R 언어의 필수 비교"에 관한 장이 포함되어 있습니다. 여기에는 중요한 구문 차이 (예 : 점 해석 또는 대괄호 []의 의미)가 포함됩니다. 이 책 자체는 기능적 프로그래밍에 관심이있는 사람이라면 어느 쪽이든 읽을 가치가있다.
R은 통계 데이터 분석 및 그래픽을위한 환경입니다. MATLAB의 기원은 수치 계산에 있습니다. 기본 언어 구현에는 데이터 조작 (예 : 행렬 / 벡터 연산)에 사용하는 경우 공통적으로 많은 기능이 있습니다.
R은 다른 곳에서 찾기 어려운 통계 기능을 가지고 있으며 (> CRAN의 2000 개 패키지 ) 많은 통계 학자들이이를 사용합니다. 반면에 MATLAB에는 엔지니어링 응용 프로그램을위한 많은 도구 상자가 있습니다.
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 ([서브 루틴 이름], [인수 목록])을 호출하는 것으로 구성되며 더 빠르고 깔끔합니다.
MATLAB의 R보다 큰 장점 중 하나는 MATLAB 문서의 품질입니다. 오픈 소스 인 R은 이러한 점에서 많은 오픈 소스 프로젝트에 공통적 인 기능을 겪습니다.
그러나 R은 매우 유용한 환경과 언어입니다. 생물 정보학 커뮤니티에서 널리 사용되며이 영역에서 유용한 많은 패키지가 있습니다.
R의 대안은 MATLAB과 매우 유사한 Octave ( http://www.gnu.org/software/octave/ )이며 MATLAB 스크립트를 실행할 수 있습니다.
필자의 경험에 따르면 MATLAB에서 Python으로 전환하는 것이 더 쉽습니다. numpy / scipy를 사용하는 Python은 R보다 스타일 및 기능 측면에서 MATLAB에 더 가깝습니다. 오픈 소스 직접 MATLAB 클론 Octave 및 Scilab도 있습니다.
MATLAB이 할 수없는 일이 많이 있습니다. 내 영역에서 MATLAB은 실시간 데이터 수집에 많이 사용됩니다. 대부분의 하드웨어 회사에는 MATLAB 인터페이스가 포함되어 있습니다. 이것이 RI로 가능할 수는 있지만 훨씬 더 복잡 할 것이라고 상상해보십시오. 또한 Simulink는 R에서 누락되었다고 생각되는 전체 기능 영역을 제공합니다. 더있을 것이지만 R에 익숙하지는 않습니다.
짧은 대답 : 아니요, 물론 아닙니다. 모든 수학적 소프트웨어 패키지는 겹치지 만 항상 특정 문제 영역에 대한 편견이 있습니다. 이러한 바이어스는 이러한 패키지 중 하나를 사용할지 여부를 강력하게 나타냅니다.
MATLAB이 R이 할 수없는 일의 예는 신호 처리 / 획득 및 제어를위한 실시간 하드웨어에 대한 인터페이스입니다. MATLAB 의 Simulink 모델은 측정 데이터를 입력으로 사용하고 적절한 출력을 계산하는 실제 시스템에서 실행할 코드를 컴파일하기 전에 머신에서 시뮬레이션으로 실행되도록 구성 할 수 있습니다 (제어 시스템의 시뮬레이션 이전의 기능은 이제 완전히 작동 함) 하나). 컴퓨터에 적절한 하드웨어 보드가 있으면 PC를 통해 실시간 제어 시스템을 실행할 수 있습니다.
반대로 R은 통계의 역할에 확고하게 자리 잡은 것으로 보입니다. 마찬가지로 Mathematica 는 기호 수학에서 MATLAB보다 낫습니다. 파이썬은 일반 프로그래밍에서 MATLAB보다 낫습니다. gnuplot 은 실제로 그래프를 작성할 때 모든 것보다 낫습니다 (또는 가정합니다). 등등.
고객이 기대하거나 요구하기 때문에 할 수 없습니다.
MATLAB과 R을 모두 사용하는 사용자는 매우 다른 응용 프로그램이라고 생각합니다. 나 자신은 컴퓨터 과학 등에 대한 배경 지식이 있으며 R은 통계 학자에게는 통계 학자이고 MATLAB은 프로그래머에게는 프로그래머라고 생각할 수 없다.
R은 모든 종류의 통계 자료를 시각화하고 계산하는 것이 매우 쉽지만, 그것이 나에게 달려 있다면 신호 처리와 관련된 것은 구현하지 않을 것입니다.
요약하면 통계를 수행하려면 R을 사용하십시오. 프로그래밍하려면 MATLAB 또는 일부 프로그래밍 언어를 사용하십시오.
R
는 프로그래밍 언어입니다.
대화식 그래픽 지원은 R보다 MATLAB에서 훨씬 낫습니다. Matlab을 언어로 싫어하지만 사용자가 마우스 조작으로 데이터를 탐색하는 방법을 볼 때 질투심이 생깁니다 xlim
. Matlab은 또한 작업에 대한 R 방법보다 다중 패널 플롯을 훨씬 잘 처리합니다. 일반적으로 R 그래픽은 1960 년대 느낌입니다. 출판에는 적합하지만 대화식 데이터 탐색을위한 최상의 솔루션은 아닙니다.