[[https://www.gnu.org/software/octave/|홈페이지]] [목차] == 개요 == GNU Octave는 수치연산을 위한 고수준 프로그래밍 언어이자 소프트웨어이다. 이름에서 드러나듯 [[GNU 프로젝트]]의 하나로, 당연히 [[GPL]]을 따르는 자유 소프트웨어이며, 다른 비슷한 자유 소프트웨어중 유독 [[MATLAB]]과의 호환성이 좋아 매트랩을 공부하고 싶지만 돈이 없는 학생이라거나, 매트랩을 사기 싫을 경우(...) 대용품으로 쓸만한편. == [[MATLAB]]과의 문법상의 차이점 == * 참고자료: [[https://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB|영문 위키북스]] 기본적으로 [[MATLAB]]과의 문법적 호환성을 염두에 두고 만들어진 프로그램이지만 차이가 몇 있다. 그 중 OCTAVE의 문법에 좀 더 유연성이 있어서 생기는 차이가 있다. * 증감연산자: OCTAVE에서는 [[C언어]] 스타일의 증감연산자 ({{{++}}}, {{{--}}}) 나 복합대입연산자 ({{{+=}}}, {{{*=}}},...) 를 사용할 수 있지만 MATLAB에서는 사용할 수 없다. * 부정 논리 연산자: OCTAVE에서는 {{{~}}}, {{{!}}} 둘 다 사용할 수 있으나 MATLAB에서는 {{{~}}}만 사용할 수 있다. * 함수값을 넘겨주는 괄호{{{()}}}와 행렬에서 값을 받아오는 괄호{{{()}}}를 연달아 쓸 수 있다. 예를 들어 5차 마방진의 두번째 행을 얻고 싶을 때 Octave에서는 {{{#!syntax python magic(5)(2, :) }}} 로 쓸 수 있지만, MATLAB에서는 {{{#!syntax python temp= magic(5); temp(2, :) }}} 와 같이 불필요한 변수 {{{temp}}}가 필요하다. == 장단점 == 주로 매트랩의 대체재 내지는 수치해석용 스크립팅 용도로 사용되는 만큼, 여기서는 MATLAB이나 기타 스크립팅 언어들 (파이썬 등)과의 차이점을 위주로 설명한다. === 장점 === * 공짜다. * 이미지 분석 패키지, [[유전 알고리즘]] 패키지 등의 다양한 패키지를 역시 무료로 내려받아 적용할 수 있다. * [[Windows]]는 물론 [[Mac OS]], [[Linux]], 심지어 [[안드로이드(운영체제)|안드로이드]]에서도 사용이 가능하다. === 단점 === [[파일:julia160413.png]] * '''속도가 느리다.''' 위 표는 C의 수행속도가 1.00일 때 다른 언어의 상대적인 수행속도를 표시한 결과로, 수치가 낮을 수록 좋다. 성능보다는 MATLAB과의 호환성을 중심으로 만들어졌기 때문이긴 하지만 옥타브는 정말 심각하게 느린 편이라 결국 퍼포먼스가 중요한 실무에서 사용하기엔 무리가 있다. * 당연한 얘기지만, MATLAB에 비해서는 지원하는 기능이 떨어진다. 예컨대 table 자료형은 MATLAB과 같이 지원하지만 이 자료형을 유용하게 만들어주는 {{{readtable}}} 함수는 아직 지원하지 않는다. * 수치해석을 위한 다양한 툴박스를 제공하는 MATLAB에 비해 Octave는 프로그래밍 환경만을 제공해 사용성이 떨어진다. == 관련 문서 == * [[MATLAB]] [[분류:소프트웨어]]