Matlab이란? 무엇인가? 우리는 왜 Matlab을 써야하는가? 일단 Matlab이란 파이썬과 비슷하게 자연어에 가까운 고수준 언어이다. 여기서 고수준이란 수준이 높다는 것이 아닌 기계어 (이진수로 표현된 010100) 보다 우리가 흔히 사용하는 자연어에 가까운 언어를 이야기한다. 

 

실상 Matlab자체가 기계어를 이해하고 싶어서 만든 것보다는 수학적 계산, 여러 신호 처리, 영상 처리, A.I.와 관련한 다양한 수치해석 등 다양한 형태에 대한 수치를 다루기 위해 만들어졌다. C언어 보다 더 고수준 언어이지만, 다양한 공학과 관련한 수학적 연산이 매우 빠르기에 많이 사용된다. 이전에 이야기한 Octave는 Matlab과 비슷하지만 Matlab을 따라가진 못한다. 그리고 우리의 선대가 만들어놓은 좋~은 함수가 많으므로 우리는 편하게 쓰면 된다. (물론 가져다 쓰는 것도 박사과정쯤 되면 못한다. 직접 만들어서 써야지 뭐... 굴러라 대학원생!)

 

요새 유명한 파이썬과도 비슷하다고 볼 수 있지만, 솔직히 공학과 관련한 연산은 Matlab이 매우 빠르기에 Matlab이 많이 사용된다. 빅데이터를 다루는 곳에서는 파이썬도 나쁘지 않은 선택이지만, 내 생각에는 다 써봐야 한다고 생각한다. 특정 범위에서는 Matlab이 이점이 있을 것이고 특정 분야에서는 파이썬이 좋을 것이다. 당연히 오픈 소스로써 파이썬은 좋은 대책이지만, 학생이라면 꼭 Matlab을 사용해보기를 추천한다. 정말 좋은 툴이다.  

 

이러한 여러 장점을 가지고 있음에도 Matlab이 쓰기 꺼려지는 가장 큰 이유는 무료가 아니라는 점이다. 다른 프로그래밍 언어와의 호환성이 떨어지는 점, 그리고 단순히 공학적 연산을 하기 위한 스크립트 언어라는 점을 탈피하기 위한 여러 노력을 하고 있다. Matlab코드를 Java, C, C++에 적용할 수 있게끔 노력하는 중이다. 요새는 버전업을 통해 범용성을 늘려가려는 노력을 많이 한다. (General Purpose Progrmming Language를 달성하기 위해 노력하는 듯하다.) - 요새는 4차 산업 혁명에 발 맞춰서 머신러닝과 딥러닝 등 A.I 설계과 모델링에 맞추고 있는 모습을 보인다. 

* kr.mathworks.com/

Matlab 홈페이지

 

처음 시작하면 이러한 모양을 볼 수 있다.

 

여러 가지를 타이핑 함으로 다양한 수치를 얻을 수 있는데, 

가장 간단한 계산인

 

>> 1 + 2

타이핑하고 확인할 수 있다.

 

간단한 계산에서부터 추가로 시각화할 수 있는 다양한 도구를 가지고 있다.

>> A = magic(7);
>> B = bar3(A);
>> colorbar

를 입력하면 ( * 그냥 입력해보자. 매트랩의 편안함을 보여주기 위함이다.)

이렇게 신박한 그래프를 바로 그려준다. (너무 간편해서 좋다.)

 

* 매트랩 자체가 수치 해석과 더불어 선형적인 모형을 다룰 수 있도록 설계되어 졌으므로 행렬(matrices)와 벡터를 사용하기 아주 편안하게 되어있다. (그래서 공대생은 매트랩을 쓰면 아주 편-안- 하게 느끼게 되는 것이다. 한번 써보면 헤어나올 수 없는 편안함 - 심지어 내가 설계 안했는데 석사 수준까지는 이미 준비되어 있는 편안함! 아 물론 없는건 만드셔야 합니다. 씽긋 ^ㅡ^)

 

 

Matlab을 대체하기 위한 소프트웨어를 간략히 소개한적이 있다. 

Matlab(매트랩)을 대체하기 위한 소프트웨어! Octave

 

Matlab(매트랩)을 대체하기 위한 소프트웨어! Octave

대학교 때, 한창 매트랩(Matlab)을 사용했었다. 학교를 졸업하고 매트랩(Matlab) 다시 사용하기 위해 매트랩 공식 사이트에 접속해보니! 간단하게 사용하기에는 가격이 너무 비싼 가격을 형성하고

studium-anywhere.tistory.com

 

간단하게 사용하기에는 좋지만, 심화학습을 위해서는 좋지 않아 결국에는 Matlab으로 돌아오게 되었다.

그래서 이번에는 Matlab을 배우기 위한 여러 레퍼런스를 소개하고자 한다. (당연히 추천 레퍼런스이며, 앞으로 Matlab과 관련한 포스팅은 이러한 레퍼런스를 기반으로 포스팅을 이어나갈 예정이다.)

 

* 설치 문제와 라이센스 문제는 이곳에서 다루지 않을 예정이다. 비싼 라이센스를 가지지만 이후에는 정말 쓸모가 많기 때문에 구매하는 것도 나쁘지 않다고 생각한다.

(학생이라면 당연히, 학교의 라이센스를 충~분하게 쓰시는게 정말 도움이 됩니다. 대학생은 기본적으로 학교에 라이센스가 존재합니다. 꼭 알아보고 쓰시기 바랍니다. )

( 일반인이라면 어쩔 수 없습니다. 구매하세요. ^ㅡ^)


역시 특정 프로그래밍 언어를 배우기 위해 가장 좋은 레퍼런스는 그 프로그래밍 언어를 배포하는 곳에 가서 직접 배우는 것이 가장 좋다. 그러므로 Matlab 공식 사이트에 들어가서 배우는 것이다.

우리는 당연한 일을 당연하게 간과하는 경향이 있다. 이걸 보고서 1차로 학습을 한 뒤에, 책을 쓰는 것이므로 당연히 기본 사이트에 들어가서 보는 것이 좋다. 하지만 처음 프로그래밍을 접한 사람은 이러한 방식은 힘들 수도 있다. 튜토리얼을 작성하는 사람마다 당연하게 생각하는 부분이 다르기에 차분하게 알려준다고 생각하진 않는다. 그러므로 처음 프로그래밍 언어를 배운다면 내게 맞는 책을 골라서 보는 것도 하나의 방법이다. 

 


kr.mathworks.com/help/matlab/index.html

 

MATLAB Documentation - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com

▲Matlab Documentation으로 많은 내용을 담고 있으며, 한국어로도 번역이 되어 있다. (단, 최신 문서는 영문으로만 볼 수 있으므로 유의하자. 그리고 이제는 영어를 할 때가 왔다.)

 


matlabacademy.mathworks.com/kr

 

MATLAB 및 Simulink 교육

MATLAB Fundamentals (English) 데이터 분석, 모델링 및 프로그래밍을 위한 MATLAB의 핵심기능을 배워보세요.

matlabacademy.mathworks.com

▲앞서 본 것이 스스로 1번부터 쭈욱 봐야하는 곳이라면 이곳은 자기 주도형 학습을 배울 수 있는 곳이다. 하나하나 필요한 내용을 배울 수 있어서 좋은 듯하다.


ubcmatlabguide.github.io/

 

http://ubcmatlabguide.github.io/

 

ubcmatlabguide.github.io

▲Matlab의 공식 사이트가 딱딱함이 있다면 개인적으로 느끼기에 부드럽게 설명해준 곳이라 생각하는 곳이다. 

University of British Columbia에서 사용되는 Yet Another Guide to Matlab이다. (사실 개인적으론 이 곳이 더 좋다.)

 

 


대학교 때, 한창 매트랩(Matlab)을 사용했었다. 학교를 졸업하고 매트랩(Matlab) 다시 사용하기 위해 매트랩 공식 사이트에 접속해보니! 간단하게 사용하기에는 가격이 너무 비싼 가격을 형성하고 있다....

물론 프로그램을 만들기 위한 노력의 대가이긴 하지만, 가격이 너무 비싸서 시도를 해보고자 하는 학생은 써보지 못하는 것이 현실이라 생각한다. [가격이 라이센스 한개당, 연간 100만원 정도이거나 영구 라이센스를 구매하더라도 대략 260만원 정도 가격이다. 여기서 끝나면 무리해서 영구 라이센스 하나 사면 되지? 라는 생각이 들지도 모르겠으나, 여기에 툴박스가 추가 되면 대충 40~50만원 정도가 추가된다. 와우! 신난다.]

 

하지만 이러한 사악한 가격에도 쓸 수 밖에 없는 이유가 몇 가지 존재한다. 기업이나 학교에서 라이센스가 있어서 사용해보았다면, 매트랩에서 제공되는 다양한 라이브러리와 내가 직접 삽질을 하지 않다도 된다는 점은 굉장히 큰 장점으로 다가온다. 그래도 석˙박사를 논문을 쓰시는 분이라면 결국엔 라이브러리를 직접 만들어서 사용해야 하는 경우도 많다. 어찌 되었던 비싼 가격임에도 다양한 메리트가 있는 프로그램임은 분명하나 간단하게 매트랩과 비슷하며 호환가능한 프로그램을 찾는 사람 입장에서 쓸만한 프로그램을 찾았다.

 

  • 매트랩의 문법과 비슷하며
  • 매트랩과 호환성이 있다.
  • 다양한 사용환경에서 사용할 수 있다.

 

바로


GNU Octave 

GNU Octave 홈페이지 모습

GNU Octave라는 소프트웨어이다. 

GPL 라이센스를 따르는 무료 소프트웨어이므로 마음껏 쓰면 된다. Matlab으로 진행하는 간단한 프로그래밍 배우기에는 적합하다.

하지만 매트랩과 호환성을 얻기 위해 속도를 잃었기에 빠른 속도가 되진 못한다. 그리고 매트랩과 문법이 비슷하다고는 하지만 다른 부분이 있으므로 주의해야 한다.

 

Octave를 활용해서 그래프 그리기, 신호처리 및 해석 등 다양한 일을 할 수 있다. 라이트한 버전의 매트랩이라 생각하면 좋을듯 하다. 

 

 

+ Recent posts