Octave를 사용하여 MATLAB 프로그래밍을 배울 수 있습니까?


23

나는 스스로 재활 약 / 분석을 수행 할 수 있고 온라인 등에서 찾은 일부 MATLAB 스크립트를 연구 / 수정할 수 있도록 MATLAB 프로그래밍을 배우고 싶습니다.

그러나 문제는 MATLAB을 감당할 수 없다는 것입니다. 내가 들었던 GNU Octave는 MATLAB과 호환됩니다. 그러나 Octave의 과제는 문서가 매우 희박하다는 것입니다.

따라서 MATLAB은 엄청나게 비싸지 만 (-ve) 훌륭하지만 온라인에는 훌륭한 문서, 자습서 및 스크립트가 많이 있으며 (+) 옥타브는 무료이지만 (맥주에서와 같이) 포괄적 인 문서는 부족합니다. .

Octave를 다운로드하여 설치하려고하지만 MATLAB 설명서 (및 스크립트)를 사용하여 작업을 진행할 수 있습니다. 옥타브와 MATLAB 사이에는 약간의 차이가 있음을 알고 있습니다. 제가 해결하려는 것은 "옥타브를 사용하여 MATLAB을 배우기"위한 노력을 방해 할만큼 큰 차이인지 여부입니다.

건설적인 의견을 환영합니다.


3
환영합니다, 호문쿨루스 Google은 2 개월 미만이며 아직 태그가 많지 않습니다. 옥타브 태그를 추가했습니다.
David Ketcheson

또 다른 옵션은 개인 용도로 계산 소프트웨어를 사용하는 것이 Mathematica입니다. 정식 버전은 300 달러 미만의 개인 용도로 사용할 수 있습니다. 이것이 귀하의 예산 내에 있는지 여부는 알 수 없습니다. 그러나 이것에 대해 무엇을 얻는 지 (정식 버전과 동일한 버전), 내가 생각할만한 가치가 있습니다. 참고 : 학생 인 경우 Matlab과 Mathematica도 비슷한 가격으로 학생들에게 제공됩니다.
Nasser

1
한마디로 그렇습니다. 언어의 차이는 매우 작습니다. Matlab에 대한 설명서는 Mathworks.com (Matlab 제작자)에서 인터넷으로 무료로 제공합니다. 놓칠 수있는 가장 중요한 것은 Matlab의 GUI입니다. 옥타브를위한 좋은 GUI는 찾기가 어렵다. Octave의 개발 버전에는 GUI가 있지만 설치하기가 어렵습니다. QtOctave를 설치했는데 outsch.org/2011/01/29/qtoctave-0-10-1-for-windows에 있습니다. 시작시 항상 오류 메시지가 있다는 것을 제외하고는 정상적으로 작동하며 Octave를 완전히 종료하지 않으면 프로세스를 종료 할 수 없습니다. 메모장 ++을 사용합니다 ...
Stefan Smith

... QtOctave의 편집기 대신에 더 잘 작동하는 것 같습니다. Octave와 Matlab의 차이점은 무료 웹 사이트에 광범위하게 문서화되어 있습니다.
Stefan Smith

언급 할만한 명성이 충분하지 않기 때문에 "답변에 MATLAB의 기능이 있습니다 (특히 도구 상자에는 있지만 Octave에는없는 기능"). 잘못된. Octave는 Octave-forge에 풍부한 패키지 세트를 포함하고 있으며 여기에는 필자가 필요했던 Matlab의 모든 패키지 기능이 포함되어 있습니다 (의료 이미지에 대한 이미지 처리 및 최적화 작업에 상당히 많은 도구 상자 / 패키지가 필요합니다). 또한 허용 된 답변은 주요 문제를 해결하지 못합니다. 즉, 질문자가 작성한 코드를 실험실 또는
개별적

답변:


24

면책 조항 : 누군가가 내가 묻는 질문에 대답하기보다는 내가해야한다고 생각하는 것을 말하려고 할 때 때때로 화가 나게됩니다. 하지만 위험을 감수하고 대안을 제안 할 것입니다.

파이썬의 과학적 컴퓨팅 패키지 numpy , matplotlibscipy를 살펴볼 것을 제안 합니다. 함께 MATLAB의 핵심 기능을 대부분 제공합니다 (일부 경우 MATLAB 이상을 제공합니다). 무료이며 오픈 소스이며 현재 Octave보다 광범위한 사용자 기반을 보유 할 수 있습니다. Python의 많은 과학 컴퓨팅 인프라는 Enthought Inc. 에서 지원하며 , 위에서 언급 한 3 가지 이상의 패키지가 모두 포함 된 무료 Enthought Python Distribution 을 설치하는 것이 좋습니다 .

물론 파이썬에는없는 MATLAB의 기능이 있습니다 (특히 도구 상자에 있지만 옥타브에는 없습니다). 그러나 필자는 대부분의 작업에서 저수준 언어와 함께 Python을 사용하며 MATLAB만큼 편리한 언어로 프로그래밍하고 MATLAB에없는 유용한 패키지와 인터페이스하고 슈퍼 컴퓨터에서 읽기 쉬운 코드.

편집 : Continuum Analytics에서 Anaconda Python 배포판 을 사용해 볼 수도 있습니다 . 위의 모든 패키지 등이 포함 된 무료 버전이 있습니다.


7
Homunculus가 MATLAB을 배우고 자하는지 (예를 들어, 직업) MATLAB을 배우고 싶거나 과학 계산을 수행하기 위해 MATLAB을 배우고 싶은지에 따라 다릅니다.
Geoff Oxberry

3
@DavidKetcheson : 실제로 numpy와 matplotlib를 사용하고 있습니다 (Python에 익숙하기 때문에). 그러나 많은 MATLAB 코드를 계속 사용하므로 사용 가능한 MATLAB 스크립트 등에서 라이센스 비용을 지불하지 않고도 배울 수 있기를 원합니다. MATLAB 프로그래밍을 항상 여분의 깃털로 사용하는 것이 좋습니다. 그래서 백도어를 통해 MATLAB을 배우려고 생각했습니다 (옥타브 사용).
Homunculus Reticulli

파이썬에서 +1은 실제 프로그래밍 언어이기도합니다. :) MATLAB을 배우면서 시작했다고 말해야합니다.
boyfarrell

Octave는 무료 라이센스가있는 Matlab 클론입니다. 언어 구문은 거의 완벽하게 호환됩니다. Python은 Matlab 및 Octave와는 매우 다른 문제를 해결합니다. 언어가 더 다양하기 때문에 구문이 훨씬 복잡하고 장황합니다. 선형 시스템의 프로토 타이핑을 위해서는 Matlab 또는 Octave를 사용하고 프로덕션 용 소프트웨어를 구현하기 위해 python / Java로 마이그레이션합니다. Matlab에서 Python 또는 R로 전환하기 전에 들어오는 내용을 이해해야합니다.
FistOfFury

@FistOfFury 선형 시스템에 순수한 Python3을 사용합니다. 프로덕션 준비 소프트웨어의 경우 일반적으로 C / Fortran 또는 임베디드로 이동합니다.
percusse

17

GNU Octave는 "Matlab과 대부분 호환됩니다."특정 미묘함은 모든 스크립트가 MATLAB에서 Octave로 이식 가능한 것은 아닙니다.

FAQ 또는 위키 북 의 언어 및 / 또는 호환성 참고 사항에 대한 설명서를 읽어 볼 가치가 있습니다 . 포팅 노트있습니다 .

MATLAB 툴박스와 유사한 패키지 가 존재하지만 그것들이 얼마나 유사한 지 확인하기 위해 체크 아웃해야합니다. 또한 두 언어의 차이점을 처리하는 변환 스크립트 시도가 있지만 내 지식으로는 완벽하지 않습니다.


12

예, Octave를 통해 MATLAB을 배울 수 있습니다. 그러나 Octave 구문은 덜 제한적이고 현대적인 스크립팅 언어와 일치합니다. MATLAB은이 점에서 뒤쳐져 있습니다. 이 위키 링크 참조 MATLAB 프로그래밍 / 옥타브와 MATLAB의 차이점

나에게 또 다른 주요 차이점은 옥타브가 아닌 MATLAB에 대한 특정 라이브러리의 가용성이었습니다.


9

일반적으로 M 언어 프로그래밍을 배우고 MATLAB이 작동하는 방식에 대해 옥타브는 괜찮습니다. 그러나 작업의 일부로 특정 도구 상자가 필요하고 무료 버전을 구현 한 사람이 없다면 운이 없습니다.

MATLAB 학생 에디션은 그렇게 비싸지 않습니다. 대학에 있다면 사이트 라이센스가있을 수도 있습니다. 두 가지 가능성을 모두 조사해야합니다.


7

과거에 같은 코드에서 Octave와 MATLAB을 서로 바꿔서 사용했습니다. 호환성에 문제가 없었습니다. 내가 알 수있는 한 주요 차이점은 다음과 같습니다.

  1. MATLAB은 바이트 컴파일이 가능하며 약간 빠릅니다.
  2. 옥타브는 주석 중 하나 #또는 %주석을 사용할 수 있으며 Matlab은%
  3. 옥타브는 훨씬 더 나은 음모를 만들어냅니다 .

1
옥타브가 훨씬 더 나은 음모를 만들어내는 점에 관심이 있습니다 (특히 MATLAB 음모가 마음에 들지 않습니다 ...).
Dirk

Octave는 gnuplot을 백엔드로 사용합니다. gnuplot이 더 좋아 보이는 것 같습니다. 내가 생각할 수있는 유일한 것은 앤티 앨리어싱을 얻기 위해 특별한 작업을 수행 할 필요가 없다는 것입니다. 자동으로 활성화됩니다.
Dan

1
Octave 플로팅에 대한 나의 경험이 혼합되어 왔으며 MATLAB으로 한두 가지를 배우고 나면 그래픽 품질이 매우 뛰어납니다. Octave가 Matab보다 우수한 성능을 발휘할 수있는 몇 가지 예가 있습니까? 아소, 바이트 컴파일? MATLAB 코더에 대해 이야기하고 있습니까? 해당 도구에 임의의 MATLAB 코드를 입력 할 수는 없으며 다소 비싼 도구라고 생각하면 학생 라이센스 버전에서는 사용할 수 없습니다.
Reid. Atcheson

혹시 편집에 대한 당신의 의미를 참조하십시오. 내 잘못.
Reid. Atcheson

죄송하지만 Matlab이 바이트 컴파일 할 수 있다는 것은 무엇을 의미합니까?
user17915


5

당신의 질문에 관해서 :
나는 그렇습니다라고 말할 것입니다. 패러다임과 원칙이 동일하기 때문입니다. 구문의 차이점은 무시할 수 있으며 치트 시트에 요약 할 수 있습니다 (주로 MATLAB을 주로 사용하는 경우).


대안에 대한 또 다른 제안 :
MATLAB 대안으로 SciLab을 사용 하고 있습니다. Octave는 무료이며, 도움과 지원을 제공하는 괜찮은 커뮤니티가 있으며 문서는 꽤 좋습니다. 내장 문서와 함수에 대한 도움말은 MATLAB과 비슷합니다. (내가 가장 좋아하는 것은 한 번의 클릭으로 예제를 실행할 수있는 기능입니다). 구문은 MATLAB과 유사합니다.

SciLab과 MATLAB의 유사점과 차이점에 대해서는이 문서가 유용 할 것입니다 . Matlab 사용자 관점에서 Scilab 소개, Eike Rietsch, 2010 년 5 월 (PDF) .

MATLAB을 통한 SciLab의 또 다른 장점 : 시작 및 GUI가 훨씬 빠릅니다. 아직 Octave를 시도하지 않았습니다.


1
나는 Scilab의 팬이 아니며, 첫 번째 인상은 구문과 기본 기능 (Malab과 비교하여)에 많은 작은 차이가 있었지만 파이썬이 비 호환성을 보완 해야하는 놀라운 것은 없었 습니다.
mdaoust

흠 ... 귀하의 의견과 David Ketcheson에 따르면 파이썬을 사용해 볼 가치가 있다고 생각합니다.
Torbjörn

5

실제 예 :

저는 직장에서 MATLAB을 사용하고 지난 학기 동안 Stanford의 무료 온라인 기계 학습 수업을 들었습니다 .

나는 모든 숙제를 한 옥타브로했습니다.

나는 2 가지 차이점만을 발견했습니다 (핵심 기능 만 사용하고 있음).

  • 옥타브는 어떤 종류의 표현식을 인덱싱 할 수 있는지에 대해 좀 더 융통성이 있습니다. 따라서이를 활용하면 코드를 이식 할 수 없습니다.
  • 내 설치에서 pcolor () 및 image () 플롯은 1000x1000과 같은 합리적 크기의 배열에서는 작동하지 않으며 50x50과 같은 작은 배열에서는 제대로 작동하지 않습니다.

5

옥타브의 MATLAB 프로그래밍 언어 해석에 미묘한 차이가 있습니다. 옥타브는 " endif"와 " endwhile"를 사용 if하여 while문 을 닫고 닫습니다 . Octave를 사용하면 명령 줄에서 함수를 선언 할 수도 있습니다. 그러나 MATLAB이 구문 분석하는 모든 것을 구문 분석해야하므로 MATLAB의 프로그래밍 언어를 고수하면 괜찮을 것입니다.

두 프로그램의 가장 큰 차이점은 " quad", " ode15s"등과 같이 수치 적으로 많은 양의 리프팅을 수행하는 내장 함수에 있습니다. 그러나 " help"명령을 사용할 때는 이러한 모든 기능을 잘 문서화해야합니다 . 온라인 도움말에서 다루지 않는보다 구체적인 질문이있는 경우 옥타브 메일 링리스트도 있습니다.


3
Octave는 while 루프와 if statemtents의 끝에서 "종료"를 받아들이게되어 기쁩니다.
Bill Barth

4

예, 당신은 절대적으로 할 수 있습니다. 그러나 MATLAB의 많은 기능은 옥타브에서 사용하거나 사용하지 않을 수있는 도구 상자와 내장 도구를 매우 쉽게 사용할 수 있습니다.

또한 기본 언어 자체는 호환 가능하지만 (MATLAB의 새로운 OO 기능 제외) 옥타브에는 NEQ에 "! ="를 사용할 수있는 것과 같이 구문에 몇 가지 '추가 사항'이 있으며 일부 언어도 있습니다. 인라인 함수 구문 분석 방법과 같은 대체 기본 동작 옥타브 코드가 MATLAB에서 바로 실행되지 않는 사소한 일로, 그 행동에 의존하지 않도록 조심하지 않으면 말입니다.

또한 MATLAB은 최적화 된 선형 대수 루틴과 인터페이스하는 언어 만이 아니라 완전한 컴퓨팅 환경입니다. 옥타브에서 배운 내용은 지금까지만 진행됩니다. Octave에 능숙하면 MATLAB에서 기능을 수행 할 수 있지만 MATLAB을 사용하여 생산성을 높일 수는 없습니다.


2

MATLAB과 유사한 구문을 가진 최고의 무료 언어는 Julia입니다. 또한 더 빠르며 더 광범위한 패키지 시스템을 가지고 있지만 (다른 이유로 더 나은 이유는 있지만) 선형 대수 구문은 거의 동일합니다 ( A[i]인덱싱을 로 변경하여 MATLAB으로 변환 할 수있는 많은 알고리즘 A(i)). 저는 지금 배우는 것이 가장 좋은 언어라고 생각합니다. MATLAB을 사용하면 "우연히 MATLAB을 알게됩니다".


0

예, Octave를 사용하여 Matlab을 배울 수 있습니다. 물론 몇 가지 제한 사항이 있습니다.

Octave와 Matlab은 많은 문법을 공유합니다. 그 점에서 두 사람은 서로 바꿔 쓸 수 있습니다. 옥타브에는 베타 버전의 새로운 그래픽 사용자 인터페이스 (GUI)가 있지만 Matlab의 경험은 특히 그래픽으로 작업 할 때 더욱 풍부하고 사용자 친화적입니다. Octave의 그래픽 환경이 개선됨에 따라 두 시스템이 더 수렴 될 것입니다.

Coursera에는 코스 기간 동안 무료 임시 Matlab 학생 라이센스를 제공하는 무료 코스가 많이 있습니다. 기계 학습 과정을 검색하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.