티스토리 뷰

 

전자공학을 전공한 사람 치고 Matlab이라는 프로그램을 모르는 사람은 없을 것이다. 처음 접한 수업이 어떤 과목이냐의 차이일 뿐, 한 번도 이 프로그램을 접하지 않고 무사히 졸업을 할 수 있을까? 기억을 더듬어보니 나는 바야흐로 대학교 2학년 때, 신호 및 시스템이라는 전공 기초 수업에서 Matlab 과제를 처음 접했다. 

 

 

전자공학도에겐 너무나도 익숙한 그 이름

 

당시에 여러가지 필터를 사용하여, 잡음을 제거하고 일부 대역의 소리만 뽑아내는 등의 과제를 했던 기억이 난다. 인터넷과 기존 소스의 힘을 빌려, 어찌어찌 과제를 제출했지만 프로그램에 대한 이해가 많이 부족했었다. 이 툴을 자유자재로 다루는 고학번의 선배들을 그저 선망의 눈빛으로 바라보던 내 모습이 아직도 눈에 선하다.

 

Matlab은 벡터 기반으로 데이터를 처리하여, 깔끔하게 그래프를 그리는 작업 외에도 다양한 이미지 프로세싱 Toolbox를 지원하며, 신호 처리에 있어서는 매우 막강한 기능을 자랑하는 대표 프로그램이다. 

 

빅데이터 처리와 시각화 및 수치 해석 등이 점점 중요시되고 있는 업계의 상황에 따라, 더이상 보지 않아도 될 거라 생각했던 이 녀석을 추억 속에서 다시 불러오게 되었다.

 

 

 


 

 

 

 

"우리 친했었잖아..."

 

대학교 시절에 사용하던 Matlab student version은 수업을 따라가기에 전혀 무리가 없을 정도의 다양한 기능을 제공하면서 무엇보다 무료로 사용이 가능했다. 그러나 회사에 와서 Matlab 라이선스 비용을 알고 나서 예전에 내가 알던 그 Matlab이 맞는 건지 큰 충격을 받았다.

 

비용이 상상을 초월하는 수준이라서, 웬만한 중소기업에서는 사용하지 못하겠구나라는 생각이 들었다. 일단, 우리 회사에서도 보유하고 있는 라이선스 자체도 많이 없어서 아침 일찍 출근하여 라이선스를 잡지 못하면 하루 종일 손가락만 빨고 있게 되는 날도 허다했다.

 

 

니가 알던 내가 아냐. 응, 아니야.

 

 

그래서 좋은 대안이 없을까 생각하던 중에, Matlab과 문법도 거의 같고, 제공하는 기능도 비슷하다는 오픈소스 툴을 발견하게 되었다. 이름하야 옥. 타. 브.

 

다양한 패키지를 제공하면서도 공짜라는 점. 그리고 Windows, Mac OS. Linux 등 다양한 운영체제에서 사용할 수 있다는 점 등 Matlab의 대체제로 손색이 없다.

 

Octave Online이라는 이름의 웹 상에서 바로 실행할 수 있는 환경도 제공하지만, 여기서는 프로그램을 다운 받아 사용하는 Octave에 대해서 어떻게 설치하는지 설명하고 간단한 초기 환경 셋업 팁 및 예제를 소개하려 한다.

 

▼ Octave Onlin 접속 URL

https://octave-online.net/

 

Octave Online

A "bucket" is how to publicly share snapshots of Octave Online script or data files. Optional: Add More Files Select files and click the right arrow button. Files to Add Files in Bucket ⇦ ⇨ Optional: Select Main File The "main" script is automatically

octave-online.net

 

 


 

 

 

 

여기서 설명하는대로만 따라 하면 손쉽게 Octave를 컴퓨터에 설치해서 사용할 수 있다. 자, 그럼 Octave 공식 홈페이지에 접속하는 것부터 시작하자.

 

아래 하이퍼 링크를 클릭하면, Octave 공식 홈페이지로 바로 접속할 수 있다.

www.gnu.org/software/octave/

 

GNU Octave

GNU Octave is a programming language for scientific computing.

www.gnu.org

 

그러면 아래와 같은 화면을 만날 수 있을 것이다.

Download를 살포시 클릭해주자.

 

 

자신의 운영체제에 맞는 버전으로 설치하면 되는데, 여기서는 Windows 64bit를 기준으로 설명을 진행했다. 본인의 컴퓨터 환경에 맞는 것으로 선택해서 설치하면 되며, 설치 파일 버전(. exe)과 압축 파일 버전(. zip)을 제공하니 선호하는 것을 골라서 진행하면 된다.

 

 

 

다운로드한 설치 파일을 실행하면, 아래와 같은 경고 창을 만나게 된다. JAVA JRE 라이브러리 관련 안내로 Yes를 눌러서 설치를 계속 진행하면 된다.

 

 

아래와 같은 화면이 나오면, 가뿐하게 Next를 눌러주자.

 

 

다음은 라이센스 관련 안내 사항에 대한 내용이 나오고, m.file 등록 여부와 사용할 라이브러리를 선택할 수 있는 창이 나온다. 기본적으로 적용된 체크 박스대로 진행하면 된다. 여기서 선택한 라이브러리는 추후에 변경이 가능하므로 너무 걱정하지 않아도 되는 부분이다.

 

 

다음으로 설치할 경로를 묻는 창이 뜨는데, 필자의 경우엔 기본적으로 잡혀 있는 C:\Octave\Octave-5.2.0를 변경하지 않고 설치를 진행했다.

 

 

설치가 쭉 진행된 이후에 아래와 같은 창이 뜬다면 여기까지 따라오느라 수고 많았다. 모든 설치 과정이 완료되었다.

 

 

이제 생성된 바로가기를 더블 클릭해보면, 아래와 같은 팝업이 뜬다. 대충 환영한다는 메시지와 앞으로 커뮤니티 뉴스 띄워줄지 여부에 대한 내용이므로 아래와 같이 체크박스를 비워두고 Next를 클릭하면 된다.

 

 

Enjoy :)

 

Octave의 기본 화면 구성은 아래와 같은데, 뭔가 조금 불편하다. Matlab과 비슷한 형태로 변경시키려면 몇몇 과정을 거쳐야 한다. 직관적으로 docking된 창을 움직여서 레이아웃을 바꿀 수 있을 줄 알았는데, 창을 드래그 해봐도 움직이지 않는다. 

 

뭔가 심심한 첫 화면

 

레이아웃을 변경하기 위해 상단 메뉴 바에서 마우스 우클릭 후, 아래와 같은 메뉴를 불러오자.

맨 아래에 Toolbar 라는 체크 표시가 있는데, 이를 해제하기 위해 클릭한다. V 표시가 사라지면 성공이다.

 

 

자, 이제 창을 마음대로 드레그해서 움직일 수 있다. 왜 Toolbar를 해제해야만 움직일 수 있게 만들었는지 이해가 잘 안 되지만, 일단 이 방법을 거치면 레이아웃을 변경할 수 있으니 그대로 따라 하길 바란다. 원하는 위치로 창을 배열한 이후에 다시 Toolbar 체크를 해주면 기존처럼 Toolbar를 사용할 수 있으니 참고하면 된다.

 

 

창을 입맛대로 변경한 모습은 아래와 같다. 훨씬 깔끔하고 편리해 보인다.

각 창에 대한 설명도 간단히 달아두었으니, 확인하시라.

 

 

 

 


 

 

 

 

여기서는 옥타브를 사용해서 간단히 코드를 작성해보고, 간단한 그래프 하나를 그려보는 것으로 포스팅을 마무리 하려고 한다. 이후에 DSP(Digital Signal Processing) 관련 포스팅을 해야 한다면, 옥타브나 파이썬 등을 사용하여 조금 더 심화된 내용을 올리는 것을 계획 중에 있다. 그러나 여기서는 설치 및 초기 셋업에 주안점을 둔 내용이므로, 간단히 프로그램이 잘 동작하는 지만 확인하는 것으로 끝맺으려 한다.

 

GNU Octave 공식 홈페이지에 가보면, 문법에 대한 예제와 함께 코드가 올라온 것이 있는데 이를 그대로 구현해보려 한다. 코드는 아래와 같다.

 

▼ 소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Ex1) Vectors and Matrics
= [492# Column vector
= [ 3 4 5;
      1 3 1;
      3 5 9 ]
= A \ b     # Solve the system Ax = b
 
# Ex2) Visualize data with plot
= -10:0.1:10# Create an evenly-spaced vector from -10..10
= sin (x);    # y is also a vector
plot (x, y);
title ("Simple 2-D Plot");
xlabel ("x");
ylabel ("sin (x)");
cs

 

 

첫 번째 예제는 (3x1) column vector와 (3x3) Matrix 사이의 Ax = b라는 관계식을 풀어, x를 계산하는 코드이다. Run을 통해 결과를 아래와 같이 얻었다. 왼쪽 WorkSpace에서 각 변수의 정보를 확인할 수 있고, 오른쪽 Variable Editor에서는 각 구성요소들을 볼 수 있으며, 아래 command window를 통해 결과물을 확인할 수도 있다. 

 

 

두 번째 예제는 -10부터 10까지의 범위에서 sinx 그래프를 그려보았다. 고등 과정의 삼각함수로 모두에게 익숙한 그래프이며, 결과는 아래와 같다.

 

Matlab에서 자주 봤던 그 익숙한 형식 그대로

 

 

 


 

 

 

 

Matlab은 수치해석계의 끝판왕이라 불릴만큼, 아주 훌륭한 프로그램임에는 두 말할 여지가 없다. 그러나 학생의 신분이 아닌 직장인이 사용하기에는 정품 라이선스비가 매우 고가이기 때문에 접근성이 좋지 못하다는 단점이 있다.

 

여기에 Octave는 비록 상대적으로 느리다는 것과 Matlab에서 제공하는 다양한 Toolbox 등을 사용하지 못한다는 단점이 있지만, 기본적인 기능들은 모두 무료로 제공하므로 Matlab의 훌륭한 대안이 될 수 있다고 생각한다.

 

그리고 오픈소스인만큼 Octave Forge 등에 다양한 패키지들이 올라오는 것으로 알고 있다. 심화된 기능을 제공하는 패키지가 필요한 사람이라면 아래 사이트를 방문해보는 것도 좋을 것이다.

 

▼ Octave Forge 접속 URL

https://octave.sourceforge.io/

 

Octave Forge

You can find the list of packages by clicking on the Packages link at the top. To install a package, use the pkg command from the Octave prompt by typing: pkg install -forge package_name, where package_name is the name of the package you want to install.

octave.sourceforge.io

 

이렇게 Octave 설치부터 간단한 코드 작성까지 포스팅이 마무리되었다.

 

빅데이터 처리와 시각화 및 다양한 수치 해석이 필수로 여겨지는 최근 업계 현황을 미루어 볼 때, Octave는 데이터 처리를 공부할 때 훌륭한 도구가 되어줄 것이라고 자신한다. 

댓글
공지사항