회사에서 사용하는 제 컴퓨터에는 MATLAB 이 설치가 되어 있지만, MATLAB이 설치가 안 된 PC에서는 OCTAVE 를 주로 사용하고 있습니다. OCTAVE 는 MATLAB 과 거의 유사한 문법을 사용하고 있어서 MATLAB 에서 사용하던 코드의 대부분을 재사용 할 수 있습니다.

저는 최근에는 주로 실험 데이터에 대해 분석하는 용도로 MATLAB, OCTAVE 를 사용하고 있고 데이터는 장비에서 주로 CSV 파일 형태로 로깅을 하고 있습니다. CSV 형태로 로깅된 파일을 분석하기 위해서는 OCTAVE 에 해당 csv 파일의 경로를 알려줘야 합니다. 그래야 읽을 수 있을 테니까요~

매번 경로를 m 파일에 적어 주는 것도 가능 하지만 파일을 매번 열어서 적는것도 굉장히 귀찮은 일인 것 같습니다. 이럴 때 주로 아규먼트를 사용하고~ 오늘은 Command Line 에서 OCTAVE 아규먼트 사용 방법에 대해서 소개하려 합니다.

일단 커맨드라인에서 옥타브를 실행하기 위해서 OCTAVE 실행 명령을 알아야 될 겁니다. 아래 그림과 같이 옥타브 바로가기 아이콘에 오른쪽 클릭을 하고 속성을 확인해 보면~ 명령어가 나옵니다.

OCTAVE CLI 를 실행하는 명령어는 아래와 같고~

%SYSTEMROOT%\system32\wscript.exe "C:\Octave\Octave-5.1.0.0\octave.vbs" --no-gui

OCTAVE GUI 를 실행하는 명령어는 아래와 같습니다.

%SYSTEMROOT%\system32\wscript.exe "C:\Octave\Octave-5.1.0.0\octave.vbs" --force-gui

제 컴퓨터에서 실행을 해보니 앞에 붙어 있는 wscript.exe 까지의 구문은 없어도 실행이 되더군요~ 따라서 아래와 같이 실행할 수 있었습니다.

CLI : "C:\Octave\Octave-5.1.0.0\octave.vbs" --no-gui

GUI : "C:\Octave\Octave-5.1.0.0\octave.vbs" --force-gui

OCTAVE Command Line Options 관련 문서는 아래 주소에서 확인할 수 있습니다.

http://octave.org/doc/interpreter/Command-Line-Options.html

다른 것들은 필요할 때마다 검색을 해 보시면 될 거 같고~ 커맨드 라인에서 m 파일을 실행하기 위해서는 위 옥타브 실행명령어 뒤에 m 파일의 path 를 넣으면 되고~ m 파일에서 받고 싶은 아규먼트는 또 그 뒤에 적어 주면 됩니다. 따라서 아래와 같은 명령 형태가 됩니다. 아규먼트는 공백을 구분자로 하기 때문에~ 추가적인 아규먼트가 있다면~ 한 칸 띄고 계속 써 주면 됩니다. 혹시 path 에 공백이 있는 경우에는 전체 path 를 쌍따옴표로 감싸서 넣어 주면 됩니다.

"C:\Octave\Octave-5.1.0.0\octave.vbs" --no-gui mFILEPATH csvFILEPATH

m 파일에서 argument 는 argv() 를 통해 받을 수 있습니다. argv() 는 Cell 타입을 리턴합니다.

저는 아래와 같이 간단하게 test.m 파일을 만들어 봤고~

argvsV= argv()

class(argvsV)

csvPath=argv(){1}

pause(5)

Windows CMD 창에서 아래와 같은 명령어로 실행해 봤습니다.

"C:\Octave\Octave-5.1.0.0\octave.vbs" --no-gui test.m test.csv

그럼 새로운 CMD 창이 뜨면서 아래와 같이 옥타브 실행 결과를 볼 수가 있습니다.

커맨드 라인에서 위와 같은 명령어를 계속 타이핑 하는 것은 불편하므로 아래 포스팅을 참조하여 배치 파일을 만들어서 사용하는게 훨씬 더 간편 할 것입니다.

https://iamaman.tistory.com/988

많은 분들이 모르시는 것 같은데… 배치 파일 또는 실행 파일에 파일을 drag & drop 하면 해당 실행 파일의 아규먼트로 들어가게 됩니다.



전자과 학생들은 회로이론을 많이들 듣게 되고 이런저런 이론과 함께 컴퓨터를 이용한 시뮬레이션 방법에 대해서 공부를 하게 됩니다. 저는 과거에 전자과 학부생 시절에 pspice 를 공부했던 경험이 있었는데 수업 시간에 이론을 듣고 피스파이스로 시뮬레이션을 해 보니 조금 더 이해가 잘 되는 것 같았습니다.

회사에 와서보니 pspice 는 orcad 에 들어있는 툴이었고 굉장히 비싸더군요. 그래서 무료로 사용할 수 있는 Circuit Simulation 툴을 검색하다보니 아래 포스팅에서 소개했던 Circuit Simulator 를 찾을 수 있었습니다.

https://iamaman.tistory.com/2626

Circuit Simulator 역시 충분히 훌륭한 프로그램이라는 생각이 들었고 학생들이 사용하기에 정말 부족함이 없는 프로그램이라고 생각을 합니다. 그런데 웹 브라우저에서 돌아가는 프로그램이다보니 인터넷이 안 되면 사용할 수 없다는 단점이 있었습니다. 그래서 설치형 무료 Circuit Simulation 프로그램을 검색해 보니~ Qucs(Quite Universal Circuit Simulator) 가 나오더군요.

qucs 는 아래 주소에서 다운로드 받을 수 있습니다.

http://qucs.sourceforge.net/download.html

각자 컴퓨터 OS에 맞는 버전을 다운로드 받으시면 됩니다.

저는 현재 Windows OS 를 사용하고 있어서 Windows 버전을 다운로드 받았습니다. 다운로드 링크를 클릭하면 아래 주소의 sourceforge 로 연결이 되고~

https://sourceforge.net/projects/qucs/files/qucs-binary/

현재 최신 버전은 0.0.19 버전이었습니다.

https://sourceforge.net/projects/qucs/files/qucs-binary/0.0.19/

qucs-0.0.19-win32-mingw482-asco-freehdl-adms.zip 파일을 다운로드 받고 압축을 해제하면 설치는 완료됩니다. 해당 폴더에서 qucs.bat 배치 파일을 실행하면 아래와 같이 Qucs(Quite Universal Circuit Simulator) 가 실행 됩니다.

요즘에는 너무나 많은 학습 자료들이 인터넷에 방대하게 있어서 새로운 프로그램을 공부하는게 정말 쉬운 거 같습니다. qucs 사용 방법에 대한 자료는 그리 많지는 않지만 유튜브를 검색해 보니 아래와 같은 동영상을 찾을 수 있었습니다. 영어를 잘하지는 못하지만 자막을 보면서 보다보니 사용방법이 그렇게 어렵지는 않더군요.

아직 0.0.19 버전 이만큼 많은 부분들이 개발되고 있는 거 같고~ 사실 위 동영상을 봤을 때 지금 기능도 굉장히 훌륭하다는 생각이 들었습니다. 대부분의 프로그램이 그렇듯이 F1 을 누르면 Qucs Help System 이 나타나고 Getting Started 를 보면서 연습을 해 본다면 금방 적응이 될 거 같더군요.

http://qucs.sourceforge.net/docs/tutorial/getstarted.pdf

Qucs Help System 을 확인하다 보니 octave 스크립트도 실행이 되는 거 같더군요. OCTAVE 연동 기능을 사용하기 위해서는 일단 OCTAVE 실행 파일 위치를 세팅 해 줘야 됩니다.

아래와 같이 File 메뉴에서 Application Settings 를 누르거나 단축키 Ctrl +, 를 누르면 Application Settings 창이 열리게 됩니다.

해당 창에서 아래와 같이 OCTAVE 실행 파일의 풀 패스를 적어 주면 됩니다.

당연히 OCTAVE 가 설치되어 있어야 되겠고~ OCTAVE 설치 와 관련된 내용은 아래 포스팅을 참조하시기 바랍니다.

https://iamaman.tistory.com/2760

OCTAVE 세팅을 다 완료한 이후에~ 프로젝트를 하나 만들고 그 안에 m 파일을 하나 만들었습니다. 메뉴얼에 설명하는대로 F2 를 누르니 아래와 같이 m 파일이 실행되더군요.

qucs 에서 OCTAVE 연동 기능은 생각해보니 굉장히 괜찮은 기능인 것 같습니다. Qucs(Quite Universal Circuit Simulator) 로 회로를 시뮬레이션하고 해당 결과에 대해서 m 파일로 분석을 할때 대단히 유용할 것 같네요. 앞으로 조금 더 많이 QUCS 를 활용하게 될 것 같네요~ ^^



회사에서 사용하는 MATLAB에 설치된 툴박스를 확인해 보니 Symbolic Math Toolbox 가 없어서 이에 대한 대체 프로그램으로 octave 를 사용하게 되었습니다. 물론 아래 포스팅에서 얘기했던 Python 의 sympy 와 같은 라이브러리를 사용해도 됩니다.

http://iamaman.tistory.com/1460

octave 는 아래 주소에서 다운로드 가능합니다. 사용하시는 운영체제에 맞는 설치 파일을 다운로드 해서 설치하시면 되겠습니다.

https://www.gnu.org/software/octave/download.html

octave command window 에서 아래와 같이 타이핑 하면 symbolic package 가 설치 됩니다.

pkg install -forge symbolic

설치 후에는 ver 라고 타이핑 해보면 아래와 같이 symbolic package 가 설치된것을 확인 할 수 있습니다.

symbolic package 를 사용할때는 아래와 같이 load 를 하고 사용하면 됩니다.

pkg load symbolic;

간단한 예제로 아래 포스팅에서 소개했던 원의 방정식에 대한 자코비안(jacobian) 매트릭스를 계산하는 방법에 대해 소개해 보려 합니다.

http://iamaman.tistory.com/2759

syms X Y % X Y symbolic 으로 정의

x = sym('x', [3,1]) % x = [a, b, r] 에 대한 symbolic 변수 정의

f= sqrt((X-x(1))^2+(Y-x(2))^2) - x(3) % 원의 방정식

jF = simplify(jacobian(f, [x(1), x(2), x(3)])) % jacobian 계산 및 simplify

결과는 아래와 같습니다.


nonlinear regression 등을 할때 jacobian 등을 많이 활용하게 되는데 octave 에 symbolic package 가 있어서 수식 계산할때 너무 편리한것 같네요.

이렇게 만들어진 수식은 아래 포스팅에서 소개했던 matlabFunction 함수를 사용하면 코드로도 변경이 됩니다. 그런데 MATLAB 에서는 다양한 옵션을 통해 코드 생성 결과를 다르게 할 수 있었지만 octave 에서는 function handle 의 형태로 나오는 것을 확인 할 수 있었습니다.

http://iamaman.tistory.com/202

jFFunc = matlabFunction(jF)

jFFunc =

@(X, Y, x11, x21) [(-X + x11) ./ sqrt((X - x11) .^ 2 + (Y - x21) .^ 2), (-Y + x21) ./ sqrt((X - x11) .^ 2 + (Y - x21) .^ 2), -1]

위 jacobian matrix 는 가장 마지막에 있는 -1 값이 고정 길이라 X, Y 가 벡터 입력인 경우 정상적으로 동작하지 않습니다. 따라서 아래와 같이 약간 수정해서 사용하면 되겠습니다.

jFFunc = @(X, Y, x11, x21) [(-X + x11) ./ sqrt((X - x11) .^ 2 + (Y - x21) .^ 2), (-Y + x21) ./ sqrt((X - x11) .^ 2 + (Y - x21) .^ 2), -ones(size(X))];



많은 공학도 분들이 MATLAB 의 사용법에 대해서 공부하실 거라고 생각합니다. MATLAB 은 아시는 바와 같이 매우 비싼 툴이고 업데이트를 위한 라이센스 유지비용 역시도 1년에 20~30 % 정도를 내는 걸로 알고 있습니다. 저는 학교에서 MATLAB 수업 과목의 조교를 했었고~ 이런 경험을 바탕으로 MATLAB 사용 방법을 소개하기 위해서 본 블로그를 만들었습니다. 개인적으로도 회사에서 MATLAB 을 사용한 업무를 하지만, 일반적으로 학생들이 학교에서 배우는 MATLAB 을 사용한 알고리즘 개발까지는 사실 MATLAB을 사용할 필요가 없다고 생각합니다.

제 블로그에서 소개했었던 Python, Scilab, Octave 를 비롯해서 매틀랩을 대신하여 알고리즘을 개발해 볼 수 있는 오픈소스 또는 프리웨어 소프트웨어들은 정말 많이 있습니다. 그렇다면 매틀랩을 쓸 수 밖에 없는 경우는 무엇이냐라고 한다면 제가 경험한 바로는 C, RTL 등의 코드 생성 분야와 Simulink 나 Stateflow 를 사용한 MBD(Model Based Design) 분야라고 볼 수 있을 것 같습니다. 학교에서는 Python, Octave 를 비롯한 오픈소스 소프트웨어들을 주로 사용하다가 회사에 와서 MATLAB 을 사용해도 늦지 않다고 생각합니다. 또한 MATLAB 만 잘하는 것 보다는 Python 과 같은 언어를 먼저 잘하는게 범용성과 실용주의적인 관점에서 더 낫다고도 생각합니다.

저는 요즘 아래 주소의 인프런(inflearn) 이라는 사이트에서 딥러닝 관련된 강좌를 보고 있는데 최근에 들어가보니 MATLAB 강좌도 있더군요.

https://www.inflearn.com

‘MATLAB으로 시작하는 프로그래밍’ 이라는 강좌이고 MATLAB 을 처음 접하시는 분들에게 유용할 강좌인것 같습니다. 비용도 무료이므로 부담없이 수강하실 수 있을 것 같습니다.

https://www.inflearn.com/course/matlab-%EC%8B%9C%EC%9E%91-programming/

다음으로 아래 주소의 tutorialspoint 사이트에서도 MATLAB 관련 Tutorial 들이 있더군요.

https://www.tutorialspoint.com/matlab/index.htm

영어 자료이긴 하지만 예제들도 굉장히 잘 정리가 되어 있어서 MATLAB 공부하는데 굉장히 좋은 자료로 보입니다. 공부하시는데 참조하시기 바랍니다.



참고주소 : http://wiki.octave.org/Octave_for_Microsoft_Windows

 

Windows 에서는 octave GUI 환경이 정상적으로 동작하지 않아서 불편했는데

 

Octave 3.8 버전에서는 GUI 가 제대로 돌아가는 군요.

 

Octave 도 MATLAB 부럽지 않게 좋아 졌네요.

 

OCTAVE 3.8 windows 버전은 아래 주소에서 다운로드 가능 합니다.

 

http://mxeoctave.osuv.de/

 

official build 는 아니라고 하네요.

 

위 주소에서 아래 그림과 같이 다운로드 하시면 됩니다.



 

저는 portable 버전을 다운로드 했습니다. Install 하고 싶으면 install 버전을 다운로드 하시기 바랍니다.

 

다운로드 후에 octave-3.8.2-1-portable.7z 파일을 압축 해제 하시면 됩니다.

 

저는 현재 windows 7 64 비트인데요. 위 파일을 압축해제 해도 정상적으로 동작하지가 않더군요. GUI 는 뜨는데 그림이 제대로 그려지지 않았습니다.

 

그래서 찾아보니 아래 주소의 파일을 다운로드해서 압축을 해제한 폴더(octave-3.8.2) 에 위치 시키고~ octave-gui.bat 을 실행 시키면 됩니다.

 

http://mxeoctave.osuv.de/octave-gui.bat

 

실행 시켜 보니 아래 그림과 같이 OCTAVE GUI 환경이 나오는 것을 확인 할 수 있습니다.

 

마치 MATLAB 과 유사하게 Workspace, Command History, Command Window 등으로 구성되어 있더군요.

 

아래 그림과 같이 Command Window 에 입력 해보니~

 

정상적으로 그림이 나오네요.

 

종전에는 Cygwin에서 octave 를 주로 사용하곤 했는데, 앞으로는 octave 3.8 버전을 자주 사용하게 될 것 같네요.


  1. sjb 2014.09.22 21:12

    아무래도 정식 버전 나올 때까지 기다려야 겠어요. 전 다운 받으면 자동으로 설치될 줄 알았는데, 다운받은 거 아무리 찾아봐도 installer 는 없네요.

    • 남성 2014.09.23 00:15 신고

      제 포스팅의 설명은 portable 버전에 대한 설명입니다. Installer 버전은 위에 있는 Installer 에 있는 download 를 클릭해서 다운로드 받으시면 됩니다. 저는 Installer 버전도 설치 잘 되네요.

  2. male 2014.09.28 15:42

    좋은 정보 정말 감사합니다! 도움이 많이 되었습니다

    • 남성 2014.09.28 17:00 신고

      도움되었다니 다행이네요. 방문해 주셔서 감사합니다. ^^

  3. oct 2014.11.04 17:50

    제가 octave install 하여 설치하고 experimental line인가를 켰는데 error: C:/Users/?μ??? Invalid argument
    이렇게 뜨면서 command창에 그래프를 입력하려고해도 키가 안먹네요 무슨 방법 없을까요? ㅜ

  4. 비싼매틀랩 2015.03.02 22:07

    설치방법 찾다가 설명 잘보고 갑니다
    그런데 포터블이랑 인스톨해서 쓰는거랑 성능같은건 차이가 없는거죠??
    간소화버전인지.. 뭐가 크게 다른가요??

  5. 비싼매틀랩 2015.03.02 22:44

    하다보니까..저장이 안되는게 다른건가요?? 매틀랩도 별로 안써봐서 왕초본데 command window 내용이 저장이 안되는것같은데..혹시 그게 다른점인지요

    • 남성 2015.03.04 20:26 신고

      성능이나 기능이 차이가 잇는건 아닙니다. 그냥 설치를 해서 사용해야 하느냐 아니면 그냥 폴더 압축만 풀어서 사용하면 되느냐의 차이 입니다.

아래 포스팅에서 국내 로또와 미국 로또의 경우의 수를 구한 파일을 올린 적이 있는데요~


2014/05/16 - [로또] - 미국 로또 메가 밀리언 모든 경우의 수


2011/03/02 - [로또] - 로또 복권의 모든 경우의 수

 

우리 나라 로또의 경우의 수는 45C6 (45 Combination 6)이죠~

 

Combination에 대한 정의는 아래 위키피디아에 설명이 자세히 나와 있습니다.

 

http://ko.wikipedia.org/wiki/%EC%A1%B0%ED%95%A9

 

MATLAB 에서는 이런 조합의 경우의 수를 매우 쉽게 구할 수 있습니다.

 

이런 조합의 경우의 수를 구하는 함수는 nchoosek() 라는 함수 입니다.

 

간단하게 로또로 예를 들어보면~ 45 개의 숫자중에 6개를 뽑는 경우의 수니까~

 

MATLAB command window 에서 아래와 같이 표현 할 수 있습니다. 로또 복권의 모든 경우의 수인 8145060 가 나오는 것을 확인 할 수 있죠~

 

>> nchoosek(45,6)

ans =

8145060

 

다음으로 조합을 다 구하고 싶다면 첫번재 인자에 벡터 값을 넣어 주면 됩니다.

 

1~5 중에서 2 개를 뽑는 경우의 수를 모두다 구해 볼까요~

 

>> nchoosek(1:5, 2) 

ans =

1 2

1 3

1 4

1 5

2 3

2 4

2 5

3 4

3 5

4 5

 

위 예와 같이 첫 번재 인자로 벡터를 넣어 주니까~ 조합의 경우의 수가 아니라 조합을 다 구해 주는 것을 확인 할 수 있습니다.

 

너무 간단하죠~ MATLAB 이 설치 안되신 분들은 OCTAVE 에서도 동일하게 nchoosek() 함수를 사용할 수 있습니다.

아래 포스팅에서 C/C++, MATLAB 에서 Q-function 을 사용하는 방법에 대해 소개한 적이 있는데요~

2011/10/05 - [통신] - [C/C++] Q, erfc function


2011/03/19 - [programming language/MATLAB] - MATLAB erf, erfc, Q- function


오늘은 대표적인 MATLAB 클론이라 할 수 있는 OCTAVE에서 Erfc, Erf, Q-Function 사용하는 방법에 대해 소개하려 합니다.

 

현재 제 컴퓨터 환경은 윈도우 7 이고~ 64 비트 입니다.

 

아래 포스팅에서는 윈도우에서 OCTAVE 를 설치하는 방법에 대해 소개한 적이 있는데요~


2013/09/14 - [programming language/Octave] - Windows 에서 Octave 사용하기


오늘은 Cygwin OCTAVE 를 사용해 보겠습니다.

 

현재 저는 Cygwin 64 비트를 설치했고~ Cygwin terminal 에서 OCTAVE 라는 명령어를 쳐서 다음과 같이 OCTAVE를 실행 시킵니다.

 

Help qfunc 를 쳐서 qfunc 에 대한 설명을 보려 했더니 위 그림과 같은 메시지가 나오더군요.

 

Qfunc은 Communications Package 에 들어있는 함수이므로 OCTAVE Communications Package 를 설치해야 합니다.

 

Cygwin 에서 OCTAVE Communications Package 를 설치하는 방법 중 가장 쉬운 방법은 Cygwin installer 에서 아래 그림과 같이 Math category 를 다 설치하는 겁니다.

 

아래 그림과 같이 math category 에는 Communications Package 뿐만 아니라 다양한 Package 들이 있고 math category를 설치하면 대부분이 OCTAVE Package 들을 설치 할 수 있습니다.

 

Math category 에는 아래 그림과 같이 OCTAVE Package 외에도 다양한 라이브러리 들이 있으므로 설치해서 한번 쭉 보는 것도 공부가 될 것 같네요

 

현재 위 그림에서 저는 Communications Package 는 설치가 되어 있지만 단순히 OCTAVE 에 로드가 되지 않은겁니다.

 

저와 같은 경우라면 위 그림에서의 설명 대로 OCTAVE command window 에서 pkg load Communications 라고 하시면 됩니다.

 

다시 help qfunc 라고 하면 정상적으로 설명이 보이는 것을 확인 할 수 있고~ 이제 부터는 아래 그림과 같이 함수를 사용 할 수 있습니다.

 

아래 그림과 같이 erf, erfc, erfcinv, erfcx, erfi, erfinv 와 같은 함수들도 octave 에서 제공하니 편리하게 사용하시면 됩니다.



아래 글을 보니 MATLAB 소프트웨어 단속 하나 보네요~

 

http://www.clien.net/cs2/bbs/board.php?bo_table=park&wr_id=26152226

 

위 주소의 글에 따르면 특정 교수 연구실 하나 지목해서 압수수색영장 가지고 싹 잡아서 20 카피에 54억 불렀다고 하는데~

 

한 카피당 2.7억 정도 부른건데… 제가 아는 가격보다는 한 2천정도 덜 부른 거 같네요.

 

보통 MATLAB 을 크랙으로 사용할 때는 필요한 툴박스만 사용하는 게 아니라 풀패키지를 깔게 되고~

 

풀 패키지 가격이 요즘 한 2.9 억 정도 되는 것 같던데~

 

뭐 일단 저는 대학에서 MATLAB 을 배우긴 했고 지금도 MATLAB 을 좋아하긴 하지만 대학에서 MATLAB 을 가르치는 것 자체는 반대하는 입장입니다.

 

위에 밝힌 바대로 MATLAB 은 어마어마한 비용이 들어가는 툴입니다. 정말 방대한 실용적인 툴박스들이 제공되서 편리하긴 하지만 툴 박스 하나 하나의 가격이 만만치가 않습니다. 또한 1년에 한번씩 업데이트를 위한 라이선스 유지 비용도 듭니다.

 

비싼 툴박스는 2천만원이 넘는 것도 있죠~ 가격에 대해서는 아래 글 참조바랍니다.

 

2013/11/07 - [programming language/MATLAB] - MATLAB 구매 가격에 대해 질문하는 분들을 위해…


 

암튼 대학에서 알고리즘을 공부하는데 있어서 MATLAB 을 대체할만한 오픈 소스 프로그램들은 얼마든지 있습니다.

 

제 블로그에서도 종종 소개드리는 Scilab, Octave, Freemat 과 같은 툴들이 있고~ 파이썬을 사용하는 Spyder 같은 프로그램도 있습니다.


 

http://iamaman.tistory.com/category/programming%20language/Octave



http://iamaman.tistory.com/category/programming%20language/SCILAB


 

2012/08/20 - [유틸] - MATLAB 과 유사한 Open Source 프로그램 FreeMat



2013/11/13 - [유틸] - 과학 분석에 사용되는 Python IDE Spyder



2013/11/26 - [컴퓨터일반] - ipython으로 unique 하게 sorting 하기



2014/09/05 - [programming language/Octave] - Windows OCTAVE 3.8 GUI 환경


대학에서는 이런 툴들에 대해 가르쳐야지 MATLAB 을 정식과목으로 채택하면 이건 뭐 학생들한테 크랙 사용하라는 소리 밖에 안 되지 않을까요?

 

대학에서는 MATLAB 만 가르쳐서 학생들이 MATLAB 만 사용할 줄 안다면 이건 매스웍스의 마케팅 전략에 놀아나는 꼴 밖에 안 되고~ 학생들을 MATLAB 의 노예로 만드는 꼴밖에 되지 않는다고 생각되네요.

 

대한민국이 참~~ 크랙 많이 사용하는데~ 운영체제인 윈도우부터 크랙을 사용하다 보니 MATLAB 크랙 사용하는 거야 너무나 당연한 걸로 생각하게 되는 것 같습니다.

 

우리나라가 윈도우 위주의 세상이 된 건, 생각 없는 정부의 소프트웨어 정책을 원망해야겠지만~ MATLAB 교육에 대한 결정권자들은 대학 교수들일거라고 생각되네요. 교수님들이 위에 얘기했던 MATLAB 대체 프로그램들을 적극적으로 교육해야 한다고 생각합니다.

 

지금 위에 털린 연구실 뿐만 아니라 정말 많은 연구실들이 지금도 크랙을 많이들 사용하고 있을 겁니다. 털면 다~~ 털리는거죠 뭐….

 

이제 우리나라도 소프트웨어의 라이선스 정책에 대해 심각하게 생각해 볼 때가 되지 않았나 생각합니다.

 

일단 운영체제부터 리눅스를 주로 활용할 수 있어야 하겠고~ 운영체제를 오픈 소스로 사용하다 보면 자연스럽게 소프트웨어들도 오픈 소스 또는 프리웨어에 관심을 갖게 될 것 같습니다.

 

저도 윈도우만 사용할 때 보다 리눅스를 사용하면서 정말 다양하고 좋은 오픈 소스 또는 프리웨어들에 관심을 갖게 되었고, 지금은 알고리즘을 하는데 있어서는 MATLAB 이 아니어도 딱히 불편함이 없는 상황 입니다.


 

물론 MATLAB 이 없으면 안 되는 상황에서는 MATLAB 을 사서 사용해야겠지만~~ 간단한 알고리즘 몇 개 공부하는데 MATLAB 으로 하는 건…. 파리잡는데~ 대포쏘는 것 같은 느낌이네요. Octave, Scilab 같은 프로그램을 사용할 줄 안다면 회사에서 MATLAB 에 적응하기는 매우 쉬울 걸로 생각되네요~

 

예전에는 윈도우, 오피스, MATLAB 과 같은 프로그램에 대해 대체할만한 프로그램이 없어서 어쩔 수 없었다고 하더라도… 지금은 대체할만한 오픈 소스 또는 프리웨어 프로그램들이 많습니다.

 

과연 지금 대학의 소프트웨어 교육들이 바람직한 것인지… 대학에서의 소프트웨어 교육에 대해 교수님들이 적극적으로 고민해 주셨으면 좋겠네요.


  1. ㄴㅇㄹ 2014.09.20 16:25

    블로그주인님쿨하셔요

  2. 학생요 2014.12.17 16:01

    학생용은 5만원이에요

  3. Daniel Heo 2015.08.31 01:19

    학교에서 MathWorks와 라이센스 계약을 체결해서 무료로 제공하기도 합니다. 저희도 그렇구요. 아마 매트랩 강의가 있는 학교면 거의 다 그러지 않을까 싶네요. 블로그 둘러보니 배울 것이 많은 곳이네요 ㅎㅎ 저도 요즘 드론 프로젝트 하면서 블로그 운영하고 있는데 자주 찾아오겠습니다.

    • 남성 2015.08.31 03:11 신고

      방문해 주셔서 감사합니다. ^^ 학교 컴퓨터 실에서야 당연히 라이센스 계약을 하고 사용하겠죠. 그런데 대학 연구실에서는 그렇지 않은 곳도 많은것 같습니다. 개인도 마찮가지구요. MATLAB 툴박스를 꼭 사용해야 하는것이 아니라면 학생들은 Octave, Python 등을 사용하는게 좋을것 같고 아래 주소에서 소개한 Julia 등과 같은 언어를 사용하는것도 좋을것 같네요.

      http://iamaman.tistory.com/1479

      개인적 경험으로도 MATLAB 만 사용할 때 보다는 위에서 소개한 오픈소스를 사용하면서 실력이 더 늘었다고 생각되네요.

      드론 프로젝트 하신다고 하셨는데~ 재밌겠네요! 좋은 결과 있으시길~

  4. 맷랩사용 2015.09.16 01:08

    뜬금없이 matlab알려주고 이거 알아서 깔라고한다음 그날과제에 matlab으로 푸는걸 내줌 쓰는법도모르는데

    • 남성 2015.09.16 08:18 신고

      대책이 없네요. 학생용을 사서 사용하셔도 되는데 일단 교수한테 오픈소스 사용해서 해도 되냐 물어보는게 좋을것 같네요. 방문해 주셔서 감사합니다.

  5. ㅁㄴ 2015.09.16 17:44

    저도 수업때 내준 매트랩 과제하려고 매트랩 다운받는법 찾다가 들어왔는데요
    오픈소스가 뭔가요?? 빨리 받아서 해야하는데... 답답하네요

    • 남성 2015.09.16 18:35 신고

      오픈소스에 대한 정의는 아래 주소 참조하시기 바랍니다.

      https://ko.wikipedia.org/wiki/%EC%98%A4%ED%94%88_%EC%86%8C%EC%8A%A4

      MATLAB 이 없으시면 octave 나 freemat 을 사용해 보세요. 문법이 거의 유사합니다.

      octave : http://iamaman.tistory.com/1427
      freemat : http://iamaman.tistory.com/639

  6. 공대생 2016.11.03 21:56

    형님. 저는 기계공학과에 다니는 학생인데요. 매트랩을 하려고 합니당. 요즘 회사에서도 그렇고 실무자들이 매트랩없으면 안된다고 해서요. 아직 카티아나 오토캐드밖에 못다루는데요. 요것도 해야한다고 하네요. 그런데 행님, 매트랩 학생용 에디션으로는 안되는겁니깡? octave, freemat은 오픈소스용 수치해석 툴인가요? 일단 이거 쓰고 있으면 될까요? 아니면 돈 좀 주고서라도 학생용에디션 번들까지 55$하던데 요거 얼렁 사서 책 봐야 할까요

    • 남성 2016.11.03 22:23 신고

      음 어떤 분야, 어떤 회사냐에 따라 다를것 같은데... 카티아 오토캐드 등은 기구물 디자인 할 때 쓰지 않나요? 저는 들어는 봤지만 사용해 보지도 할줄 도 모릅니다.
      어떤 분야를 하고 싶은지를 정하고 공부하시는게 좋을 듯 하네요.
      자동차 제어기용 소프트웨어를 하고 싶다면 C 를 할 줄 알아야 하고 임베디드에 대한 지식이 있어야 합니다.
      요즘 자동차 제어기는 MBD(Model Based Design) 로 가려는 추세이므로 Simulink 로 제어기 소프트웨어를 만드는 추세 입니다. 학생용 stateflow 가 있는지 모르겠지만 stateflow 를 할줄 알면 좋습니다.
      Simulink 를 사용한다고 해도 MATLAB 이 기본입니다.

      octave, Freemat 은 MATLAB 과 문법이 굉장히 유사한 툴입니다. MATLAB 스크립트에 대해 공부한다면 그냥 octave, Freemat 을 사용해도 될것 같고 MBD를 하고 싶다면 어쩔수 없이 Simulink, Stateflow 가 들어있는 학생용 MATLAB 을 사서 공부하셔야 할 겁니다.
      대학생이시면 학교 컴터실에 MATLAB, Simulink 등이 많이들 설치되어 있으므로 사용해 보시길 추천 합니다.

  7. OnDraw 2018.10.23 11:06 신고

    이렇게 배운 인력은 나가서도 매트랩을 써야 하지요...

    연구성과를 외부의 다른사람이 전달받아 쓰게 되면 그사람도 매트랩 써야 하구요

Cygwin 은 윈도우에서 X-windows를 사용하는 방법에 대해 설명 드립니다.

 

Cygwin설치시 다음 그림과 같이 X11 Category install 로 바꾸고 설치해 줍니다.


 

또는 CMD에서 명령어를 이용해서 설치하기 위해서는 아래 주소 참조하여~

 

http://cygwin.com/faq/faq.html#faq.setup.cli

 

다음과 같은 명령어로도 X11 Category 를 설치 할 수도 있습니다. 아래 명령어 이후 나오는 Cygwin설치 창에서 다음~ 다음~ 만 눌러줘도 됩니다.

 

setup-x86_64.exe –q –C X11

 

 

설치를 했으면 Cygwin 터미널에서 다음과 같이 xinit 라는 명령어를 쳐줍니다.

 

그럼 이렇게 X-windows 가 나타납니다.

 

다음으로 간단하게 octave 에서 그래프를 한번 그려볼까요~

 

그래프를 그리면 아래 그림과 같이 Gnuplot 를 사용해서 아래 포스팅에서 소개했던 것보다 예쁜 그래프를 그려 보실 수 있습니다. 


2013/09/04 - [programming language/Octave] - Cygwin Octave plot() 안 될 때~

 

 

X-windows를 끄는 방법은 아래 그림과 같이 메뉴를 드래그해서 quit 를 선택하면 됩니다.


 

다음으로 Cygwin 터미널에 startx 라고 타이핑 하면~ 아래 그림과 같이 또 다른 형태의 X-windows를 사용할 수 있습니다.


 

마찬가지로 octave 그래프 하나 그려볼까요~ 아래 그림처럼 X-windows상에서 그래프가 그려지고 드래그 해서 이동도 가능하더군요.





통신 시뮬레이션을 하면서 Root Raised Cosine Filter 는 많이들 사용하실 텐데요.

 

아래 포스팅에서 소개했다시피, Root Raised Cosine Filter Coefficient 는 Communications System Toolbox 의 rcosine() 함수를 통해서 구할 수가 있었습니다.

 

2011/03/02 - [programming language/MATLAB] - [디지털 통신] Raised Cosine Filter

2011/03/09 - [programming language/MATLAB] - [디지털 통신] EYE PATTERN


그런데 최근에 사용해보니 다음과 같이 향후에는 없어질 함수이니 fdesign.pulseshaping 을 사용하라고 나오더군요.

 

MATLAB 을 사용할 수 없는 환경에서는 OCTAVE 를 사용할 때, communications package 는 있지만 rcosfir, rcosflt 와 같은 함수들은 아직 제공되지 않더군요.

 

http://octave.sourceforge.net/communications/overview.html

 

Root Raised Cosine Filter Coefficient 수식을 보고 작성하는 방법도 있겠지만, 이런 코드들은 대부분 인터넷을 찾아보면 나오기 마련이라

 

찾아보니 아래 주소에 있더군요. 

http://www.mathworks.com/matlabcentral/fileexchange/14809-m-qam-modulation-and-demodulation

 

위 주소에서 다음 그림과 같이 QAM.zip 파일을 다운로드 한 후에 압축을 해제 합니다. 파일 이름에서도 알 수 있겠지만, QAM 변복조 함수들이 포함되어 있더군요.

 

 

몇가지 함수 중에 my_rrc.m 함수가 Root Raised Cosine Filter Coefficient 를 생성하는 함수 입니다.

 

함수 원형이 다음과 같으니 네 개의 변수를 넣는다는건 아실테고~ 위에서 설명드린 rcosine() 함수와 비슷하더군요.

 

function f = my_rrc(fd, fs, beta, delay)

% MY_RRC Produces the impulse response of a root raised cosine filter

% F = MY_RRC(Fd, Fs, BETA, DELAY) is the impulse response of a root

% raised cosine FIR filter with rolloff factor BETA and delay DELAY. 


fd 는 원 신호의 sample rate, fs 는 oversample rate, beta 는 Root Raised Cosine Filter 의 rolloff factor, delay 는 말 그대로 filter 의 delay 심볼 수 입니다.

 

제가 테스트 해보니

 

Sqrt_r_filter= rcosine(1e6, 8e6, 'sqrt', 0.2, 3);

Sqrt_r_filter_2=my_rrc(1e6,8e6,0.2,3);

D=Sqrt_r_filter_2(:)-Sqrt_r_filter(:)

plot(D)

 

차이가 10-16 대로 동일한 계수가 나오더군요.

 

간단하게 Root Raised Cosine Filter 를 roll off 에 따라 그려봤습니다.

 

Sqrt_r_filterAll=[];

legCell={};

 

n=1;

for r=0.2:.2:.9

Sqrt_r_filterAll(:,n)=my_rrc(1e6,8e6,r,3);

legCell{n}=num2str(r);

n=n+1;

end

 

figure,

plot(Sqrt_r_filterAll), grid on

legend(legCell)

OCTAVE 에서도 확인해보니 정상적으로 Root Raised Cosine Filter Coefficient 가 나오더군요. 




이전 포스팅에서 Cygwin 에서의 Octave 사용과 관련하여 간단하게 설명드린 바 있는데요~


2013/09/04 - [programming language/Octave] - Cygwin Octave plot() 안 될 때~


 


오늘은 좀더 구체적으로 package 설치하는 방법에 대해 설명하려 합니다.

 

octave 에는 다양한 package 들이 있는데요. Package 는 용도에 따른 함수 라이브러리 들입니다. MATLAB 의 툴박스와 같은 의미 입니다.

 

Octave 에서 사용가능한 Package 들의 목록은 아래 주소에서 확인 할 수 있습니다.

 

http://octave.sourceforge.net/packages.php

 

아래 그림과 같이detail 을 누르고 들어가서~ 보시면 아래 그림과 같은 Dependencies 가 있는데요~

Signal 1.2.2 버전의 package 를 설치하기 위해서는 Octave (>= 3.6.0) 3.6.0 버전 이상과 specfun (>= 0.0.0), control (>= 2.2.3), general (>= 1.3.2) 의 package 들이 미리 깔려 있어야 한다는 겁니다.

Octave 에서 ver 이라고 치면 아래 그림과 같이 현재의 Octave 버전과 Package 들이 보여지게 됩니다.

 

Octave package 를 설치하는 가장 쉬운 방법은 Octave 프로그램 상에서 아래 형식의 명령어를 사용하는 겁니다.


pkg install -forge 패키지 이름 –auto

 

–forge 는 octave-forge 사이트에서 자동으로 받으라는 것이고 –auto 는 해당 package 를 자동으로 load 하는 겁니다. –forge 옵션을 사용 할 때는 인터넷이 연결된 상태여야 합니다.

 

그럼 간단하게 audio package 를 설치하는 예를 실행해 보죠~

 

audio package 는 이름만 보셔도 아시겠지만 음원과 관련한 package 인데요~      Function Reference 를 확인해 보시면~ 음원을 재생하고 읽고 쓰고 하는 등과 같은 함수들이 들어있네요~

 

http://octave.sourceforge.net/audio/index.html

 

Octave Command 창에서 다음과 같이 명령어를 칩니다.

pkg install -forge audio –auto

 

다음과 같이 설치되는 것을 보실 수 있을 겁니다.

 

그리고 잘 설치 된 건가 확인 하기 위해 audio package 의 함수 중 하나인 soundsc() 함수에 대한 help 를 볼까요~ 잘 설치된 걸 확인 할 수 있습니다.

 

그럼 즐거운 Octave 프로그래밍 되시길~


  1. 2014.04.08 01:35

    비밀댓글입니다

    • 남성 2014.04.08 03:15 신고

      cygwin octave 에서 그래프가 안그려 진다는 거죠?
      아래 글 참조해서 x 윈도우에서 해 보시기 바랍니다.
      http://iamaman.tistory.com/706

MATLAB 과 마찬가지로 Octave 도 함수들의 사용방법을 확인 할 때는 Help 또는 Doc 명령어를 사용 합니다.

 

Doc 는 Document 명령어의 약자로 Help 보다 좀더 자세한 내용들을 담고 있어서 정확한 이해가 필요할 때 주로 사용하는데요~

 

아래 그림과 같이 Octave 에서 doc 명령이 제대로 동작을 안 할 때가 있습니다.



Octave에서 Document 가 제대로 보이게 하기 위해서는 터미널에서 아래 명령어를 통해 Octave Document를 설치해 줘야 합니다.

 

sudo apt-get install octave-info

 

이제 Octave 터미널에서 doc fft 하면 다음과 같이 정상적으로 동작하는 것을 확인 할 수 있습니다.


Windows 에서 Octave 를 사용하는 방법은 크게 세가지 정도가 있습니다.

 

첫 번째로는 아래 포스팅에서 설명드렸던 Cygwin 을 사용하여 Octave를 사용하는 방법과

 

두 번째로는 VirtualBox 를 사용하여 리눅스와 같은 OS를 설치한 다음 그 안에서 Octave 를 사용하는 방법

 

그리고 세번째로는 오늘 설명 드릴 Binary 로 빌드된 Octave 를 설치하는 방법입니다.

 

아주 예전에 아래 포스팅에서 Windows에서 Octave 사용 방법에 대해 간략히 설명드린 적이 있는데~ 아래 글에서 소개했던 다운로드 링크를 다시 가보니 정상적으로 다운로드가 안 돼더군요.



2011/04/17 - [유틸] - GNU Octave 를 이용해 보자


 

Octave Windows Binary 파일은 아래 주소에서 다운로드 할 수 있습니다.

http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/

 

현재의 Octave 최신 버전은 3.6.4 버전이네요.

 

위 주소에서 보면 각 Octave 버전 별로 두 가지 파일이 있습니다.

 

첫 번째는 Visual studio 사용을 위한 Octave 이고

 

두 번째로는 MinGW 사용을 위한 Octave 입니다.

 

오늘 포스팅에서는 첫번째 방법인 Visual studio 사용을 위한 Octave 설치 방법에 대해 설명하려 합니다.

 

위 그림 중 첫번째 링크인 Octave 3.6.4 for Windows Microsoft Visual Studio 를 클릭하고 들어가서~

 

http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.4%20for%20Windows%20Microsoft%20Visual%20Studio/

 

아래 그림과 같이 octave-3.6.4-vs2010-setup.exe 파일을 다운로드 받고 설치를 진행 합니다.

 

설치야 뭐 다음~ 다음~ 하면 되지만 아래 그림과 같은 화면이 나타나면~ Octave Forge 를 꼭 체크 해 주시기 바랍니다.

 

Octave Forge 옵션은 MATLAB 의 툴박스와 같은건데~ 다양한 package 들이 들어있습니다.

 

중간에 자바 관련 warning 이 뜰 텐데, java package 를 사용하실 게 아니면 그냥 확인 하고 넘어가도 됩니다.

 

Java Package를 사용하실 거라면 당연히 JAVA 가 설치되어 있어야 겠죠~

 

설치가 완료 되면~ C:\Software\Octave-3.6.4 에 설치 되게 되고~

 

실행해 보시면~ 아래 그림과 같이 나타납니다.

 

Pkg list 라고 명령어를 쳐서~ 설치된 package 들을 확인 합니다.

 

아래 그림과 같이 설치된 package 들이 쭉~~ 나와야 정상입니다. 아래와 같은 화면에서 Q 를 누르면 원래 command 화면으로 돌아옵니다.

 

 



다음으로 Octave 와 같이 사용할 Editor 설정에 대해 설명 드립니다. 아무 에디터나 사용해도 상관이 없지만, 보통 Notepad++ 와 같이 사용합니다.

 

Notepad++ 는 아래 주소에서 다운로드 받을 수 있습니다. Install 버전과 zip 버전 중 기호에 따라 아무거나 선택해서 설치 합니다.

 

http://notepad-plus-plus.org/download/v6.4.5.html

 

처음에 edit 라고 치면 아래 화면처럼 아무것도 안 나옵니다.

 

Notepad++ 설치 후에 C:\Software\Octave-3.6.4\share\octave\site\m\startup\octaverc 파일을 엽니다.

 

파일의 맨 아랫줄에

EDITOR('에디터 실행 파일의 path');

를 적고 저장해 줍니다.

 

보통 윈도우 32 비트에서 notepad++ 를 설치 한 경우 C:\Program Files\Notepad++\notepad++.exe 와 같고~

 

64 비트일 경우에는 C:\Program Files (x86)\Notepad++\notepad++.exe 일 겁니다.

 

저는 zip package 를 사용해서 아래 그림과 같이 썼고 octaverc 파일을 저장 후 닫아 줍니다.


이제~ Octave 를 재 실행 시키고~ edit 라고 칩니다. 그럼 방금 설정했던 notepad++ 실행됩니다.

 

Notepad++ Octave 에디터로 사용하게 거죠~

 




이제 마지막으로 Octave 에서 Visual C++ 컴파일러 사용을 위한 셋팅에 대해 설명 드립니다. C-mex 등을 사용하실 게 아니라면 아래 내용은 굳이 볼 필요 없습니다.

 

요즘은 아래 포스팅에서도 설명 드렸지만 Visual studio Express 를 무료로 용할 수 있습니다.

 

아래 주소에서 Visual studio Express 를 다운로드 받고 설치 합니다.

 

http://www.microsoft.com/visualstudio/kor/downloads#d-express-windows-desktop

 

아래 그림과 같이 지금 설치를 눌러서 파일을 다운로드 받고 설치하면 됩니다. 설치 시간은 좀 걸리더군요.

 

설치가 완료되면 이제 환경변수 설정하는 것만 남았습니다.

 

Command 창에서 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat 를 실행시킵니다. 위에서도 말씀 드렸지만 저는 64 비트 운영체제이고~ 32비트의 경우에는 path 가 다를 겁니다. 각자 컴퓨터에서 확인 후에 vcvarsall.bat 를 command 창에서 실행 시키면 됩니다.


 

위 명령어를 실행 후에 해당 command 창에서 octave 를 실행 시킵니다.

 

간단하게 실행 시키는 방법은 아래 그림과 같이 octave 링크를 드래그 해서 command 창에 놓고 엔터를 쳐서 실행 시키는 겁니다.

 

이제 Octave 에서 위에서 설치한 Visual C++ Compiler 를 사용 할 수 있습니다.

 

이번 포스팅에서는 C-mex 의 사용 방법에 대해서는 설명드리지 않습니다.

 

글이 길어 졌네요. 오늘 포스팅은 여기까지만 하겠습니다.


윈도우에서 리눅스 명령 또는 툴들을 사용할 때 GOW 도 사용하지만


2012/11/11 - [유틸] - GNU On Windows 를 이용하여 Windows 에서 Linux 명령어 사용하기


많은 분들이 훨씬 더 많은 기능을 담고 있는 Cygwin 을 주로 사용하실 텐데요~


아래 주소의 Cygwin 홈페이지를 가보니 요즘은 64 비트 Cygwin 도 나왔더군요.

 

http://cygwin.com/install.html

 

32 비트를 설치하시려면~ setup-x86.exe 파일을,  64 비트를 설치하시려면~ setup-x86_64.exe 파일을 다운로드 받아서 설치하시면 됩니다.

 

 

저도 요즘은 64 비트 윈도우를 사용하다 보니 64 비트 Cygwin 을 낼름 깔아 봤습니다.

 

설치 방법은 밑에 글 참조 바랍니다. 

2012/10/07 - [유틸] - Cygwin에서 간단히 C 코딩해보기~

 

제 블로그에서는 MATLAB 을 주로 설명하지만 리눅스에서는 Octave 라는 MATLAB 과 굉장히 유사한 프로그램이 있습니다.

 

Cygwin 에서 Octave 를 설치하실 때, Octave 는 Math 카테고리에 있으니깐 Math 옆의 Default 라고 되어 있는 글을 클릭해서 Install 로 바꿔준 후에 설치하셔야 합니다.

 

 

기쁜 마음으로 ~ Cygwin64 Terminal 에서 다음과 같이 Octave를 실행했습니다.

 

뭐 당연히~ 잘~~ 실행 되더군요.

 

그래서 간단히 사용을 해 봤죠.

 

x=linspace(0, 2*pi,100);

y=sin(x);

plot(x,y)

 

간단하게~ sin() 그래프 그리는 건데…. 헉!! 아래와 같은 메시지가 나오면서 에러가 뜨더군요.

 

0 [main] octave-3.6.4 4852 child_info_fork::abort: ……………. 어쩌구 저쩌구… 블라 블라~


 

그래서 32 비트에서도 해보니 아래와 같이 잘 나오더군요.

 

64 비트에서는 안 되는게 이상해서 구글링을 해보니 아래 글의 중간 정도에 해결 방법이 있었습니다.

 

http://octave.1599824.n4.nabble.com/Octave-3-6-x-for-windows-td4649424.html

 

아래 첨부한 rebaseall_example.bat 파일을 C:\cygwin64 폴더에 다운로드 한 후에~ 아래 그림처럼 관리자 권한으로 실행해 줍니다.


rebaseall_example.bat


 

 

rebaseall_example.bat 파일 내용 >

@echo off

 

cd bin

 

dash -l -i -c "echo ' !! Starting rebasing. Be patient !! \n' ; rebaseall "

 

echo .

echo !! No rebaseall errors ? Than done and fine, !!

echo !! otherwise you have others cygwin process running !!

echo .

 

pause

 

조금 기달렸다가~ 아래와 같은 화면이 나오면 해당 화면을 닫아 주시면 문제가 해결됩니다.

 

이제 Octave 를 다시 실행 시키고 그래프를 그려 볼까요?

 

이제 아래 그림처럼 촤라락~~ 하고 그래프가 나오는 것을 확인 할 수 있습니다.

 

물론 예쁜 그림은 아니지만~


평소 오픈 소스 프로그램을 즐겨 사용해 보곤 하는데~

 

오픈 소스 프로그램 중에는 정말 훌륭한 프로그램들이 많다는 생각을 많이 합니다.

 

아래 포스팅에서 MATLAB 과 유사한 프로그램들로 SCILAB 과 Octave 를 소개해 드린 바 있는데요. 



2011/04/17 - [유틸] - GNU Octave 를 이용해 보자


2011/03/11 - [MATLAB] - SCILAB


2012/01/12 - [컴퓨터일반] - SCILAB 간단 사용법



 

오늘은 MATLAB 과 유사한 또 다른 오픈 소스 프로그램인 FreeMat 에 대해 소개해 드리려 합니다.

 

일단 FreeMat 의 공식 홈피는 아래 주소와 같습니다.

http://freemat.sourceforge.net/

 

메인 화면에 Downloads 라고 쓰여진 바로 밑에 다운로드 링크가 있으니깐~ 다운로드 받아서 한번 사용해 보세요~

 

윈도우, 리눅스, 맥 에서 다 돌아가는군요.

 

저는 이런 거 발견하면 일단 한번씩은 꼭 깔고 보는데요~

 

다음과 같이 생겼습니다.

 

기본적으로 생긴 건 MATLAB 과 굉장히 유사하더군요. 그리고 위에 예제와 같이 기본적인 함수라던가 복소수 처리 등도 같습니다.

 

가격으로 보나 툴박스로 보나 MATLAB 과 비교는 무리지만~ 기본적인 함수들만을 이용할 때는 쓸 만 하다고 생각합니다.

 

MATLAB 이 안 깔린 컴퓨터에서는 이런 프로그램 깔아서 써도 괜찮을 것 같군요.

 

아래는 에디터에서 코딩 한번 해 본건데요.

 

보시다시피 확장자도 .m 이더군요. MATLAB 과 약 95 프로 호환된다고 홈피에 써 있네요.

 

위의 코드를 실행해 봤습니다.

 

간단하게 1차원 곡선과 FFT 한번 해 본건데 이 정도만 볼만 하다고 생각되네요.

 

심플하고 괜찮아 보이죠?

 

써 보니깐 굉장히 가벼워서 좋은 것 같네요.

 

MATLAB 툴 박스를 주로 이용하시는 게 아니라면 이런 오픈 소스 프로그램을 써 보시는 것도 좋을 것 같군요.

 

이런 프로그램들은 중고등학생들도 많이들 이용했으면 좋겠네요.

 

수학이나 과학 공부하는데 굉장히 도움이 많이 될 거라고 생각됩니다.


  1. qubick 2012.09.13 02:23

    c언어로 직접 그래프함수 구현해서 쓰다가 머리가 너무 아파 시뮬레이션 프로그램 찾아 돌아다니길 한참... 매트랩이 너무 무거운 프로그램이라 고민하다가 우연히 좋은 프로그램 정보 얻어갑니다 설치도 금방, 가볍고 잘 돌아가고 아쉬울 게 하나 없네요! 정말 도움 많이 되는 포스팅이었습니 :)

    • 남성 2012.09.13 10:12 신고

      도움이 되었다니 다행이네요~ 방문해 주셔서 감사합니다. ^^

  2. paksungwoo@naver.com 2013.04.18 08:51

    와 이런게 있군요. C언어는 너무 골치아파서 하기 힘든데 매트랩은 너무 비싸서 엄두가 안나서 쓰지 못하고;;

    이래저래 근심이었는데 한 번 써봐야 겠습니다.

    • 남성 2013.04.18 09:00 신고

      방문해 주셔서 감사합니다. ^^
      매트랩의 툴박스를 사용해야 하는게 아니라면 이런 공짜 프로그램을 사용하는것이 좋다고 생각됩니다.

  3. 이세원 2017.03.22 23:29

    matlab을 공부하려고 하다가 프리멧을 알게되서 왔는데요 스크립트랑 펑션이 있는데 펑션을 어떻게 키는지 알려주세요 감ㄱ사합니다^^

    • 남성 2017.03.23 08:23 신고

      함수 사용은 아래 글 참조해 보시기 바랍니다.

      http://iamaman.tistory.com/122

MATLAB 을 대체 할 만한 공학 프로그램으로 이전에 scilab 을 소개한 적이 있습니다.

   

2011/03/11 - [MATLAB] - SCILAB


오늘은 또 다른 오픈소스 프로그램으로서 MATLAB 과 문법이 굉장히 유사한 GNU Octave 에 대해 소개 합니다.

 

일단 다음 페이지에서 다운로드 가능 합니다.

 

http://www.gnu.org/software/octave/download.html

 

위 주소에 가 보시면 GNU 프로그램이니 만큼 source code 뿐만이 아니라 Binary 파일을 제공해 주는군요.

 

Linux , Mac OS X, Windows , Sun Solaris …. 와 같이 널리 사용되는 운영 체제에 대해서는 binary 파일을 제공해 주니깐 자신의 운영 체제에 맞게 다운로드 후

 

설치 하시면 되겠습니다. 


설치 후 실행을 해 보니 다음과 같은 창이 뜨네요. 

 

문법이야 MATLAB 이랑 너무 비슷해서 MATLAB 을 사용할 줄 아신다면 그냥 바로 이용할 수 있습니다.

 

설치를 하게 되면 pdf 및 html 로 약 700 page 에 달하는 document 가 제공되는데요.

 

document도 굉장히 잘~ 정리가 돼서 보기 좋군요. 




간단하게 sine 그래프 하나 그려 볼까요.

 

 

특이 한 점은 plot() 에 세미 콜론을 안 붙이니깐 위 코드에서 보는 바와 같이 warning 이 뜨는군요.

 

그래프는 아래 그림처럼 나오네요. 

 

MATLAB 그래프에 비해 좀 투박한 느낌이 들긴 하지만, 공짜인데 이 정도면 훌륭하다고 생각되네요.

 

document 를 쭉~ 훑어 보니…. 이거 완전 공짜 MATLAB 이잖아~~ 하는 생각이 드네요.

 

너무 좋군요.


+ Recent posts