본문 바로가기

Tools & Tips/Octave

[octave] What is the Octave?

옥타브(Octave)는 수치해석용 자유 컴퓨터 소프트웨어로서, MATLAB과 호환성이 높다.

옥타브는 GNU 프로젝트의 하나이다. 옥타브는 매스매티카같은 컴퓨터 대수 체계가 아니라 과학적 계산을 위한 도구이다. 쉽게 말하면, Matlab 프로그램에 대한 GPL(General Public License) , Matlab의 무료버전이라고 생각하면 된다.

GNU Octave

위의 Bookmark에서 install이 가능하며, Linux, macOS, Windows 환경 모두 지원한다. 본인은 미래자동차/로봇프로그래밍 class에서, SLAM Example code를 작성하고 돌려보고자 유료인 Matlab 대신하여 octave를 설치 후 사용하였다.

Matlab과 문법적으로 완벽하게 일치하지는 않지만 .m 파일을 무료로 구동시켜볼 수 있다는 것에서 큰 메리트가 있다고 생각한다. 추가로 오픈소스인 octave는 간단한 Matrix계산을 할 때, 매우 유용할 것 같아 Matlab license가 생기기 전까지는 애용하고자 한다.

Octave에 대한 간단한 설명

  • Technical description
    • 기본적으로 매트랩과 동일한 문법으로 작성된다.
    • C++ 표준 라이브러리를 사용하여 만들어졌다.
    • 스크립트 언어를 실행하는 인터프리터 사용한다.
    • 동적으로 load할 수 있는 모듈을 사용해서 확장이 가능하다.
    • 옥타브 인터프리터는 gnuplot & Grace software와 연계해서 표와 그래프, 차트를 만들 수 있고, 저장하거나 인쇄할 수 있다.
  • As a Programming language Octave
    • 인터프리터 형식의 프로그래밍 언어이다.
    • C언어와 같이 구조적 프로그래밍언어이며, 많은 일반적인 C 표준 라이브러리 함수를 지원한다.
    • 유닉스 체계의 call과 함수를 지원하도록 확장될 수 있다. 그러나 주소 참조를 이용한 함수 파라미터 넘겨주기는 불가능하다는 점을 유의해야 한다.
    • 언어는 행렬에 의거하며 행렬 연산용의 다양한 함수를 제공한다.
    • 객체지향 프로그램은 아니지만, 자료 구조체를 지원한다.
    • 매트랩과 매우 문법적으로 유사하지만, 세부적인 명령어 특히 플로팅관련해서는 gnuplot에 전적으로 의지하기 때문에 차이가 있을 수밖에 없다.
    • 실제, octave를 이용한 그래프 작성은 gnuplot 명령에 대한 지식이 필요하며, gset or gnuplot_set 함수를 이용하여 gnuplot에 직접 전달하여야 한다. (version 2.1.73에서)

Reference

GNU Octave

 

GNU Octave - Wikipedia

GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mo

en.wikipedia.org