We will find a way. We always have.

고려대학교에서 인공지능과 금융공학을 연구하고 있는 어느 대학원생의 블로그입니다.

프로그래밍 언어(Programming Language)/매트랩(MATLAB)

[MATLAB] 1강 - 설치 및 기초 문법

MinsukSung 2020. 10. 17. 16:55

여기에서 정리하는 모든 내용은 고려대학교 문인식 교수님의 '뇌공학프로그래밍입문(INTRODUCTION TO PROGRAMMING FOR BRAIN AND COGNITIVE ENGINEERING)' 강의록을 정리한 내용입니다. 해당 내용에 대한 모든 저작권은 문인식 교수님께 있음을 확인하시길 바랍니다.


 일단 MATLAB이 무엇인지 어디에 쓰이는건지에 관한 원론적인 내용은 건너뛰고 빠르게 설치 및 기초 문법에 대해서 알아보겠습니다. MATLAB 설치는 저의 경우 기본적으로 학교 메일 계정(@학교이름.ac.kr)이 있다면 사용할 수 있습니다. 저와 같이 교육용 라이센스를 사용하지 못하시는 분들은 따로 구매하셔야 사용하실 수 있습니다.

 

MATLAB 공식 홈페이지

 

MATLAB 및 Simulink 구입 방법 - MathWorks 나라 선택

Select a Web Site Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: . Select web site You can also select a web site from the following list: How to Get Best S

kr.mathworks.com

 


이제 MATLAB 설치를 다 했다면 아래와 같은 창을 확인하실 수 있습니다. 저는 R2020b 버전으로 설치를 하였기 때문에 아래와 같은 화면이 나옵니다. 이전 버전을 사용하시는 경우 저와 다를 수 있습니다.

 

MATLAB 실행시 첫 시작화면

앞으로 모든 코딩은 저 명령창에서 진행합니다. 한번 간단하게 사칙연산부터 되는지 확인해봅시다. 직관적으로 +, -, *, / 를 사용하여 사칙연산을 사용할 수 있습니다. 참고로 % 연산자는 여기서는 주석(comment)로 사용됩니다.

  • + : 더하기
  • - : 빼기
  • * : 곱하기
  • / : 나누기 ex) 10 / 5 -> 2
  • \ (역슬래쉬) : 나누기 ex)10 \ 5 -> 0.5
  • ^ : 지수곱 ex) 5^2 -> 25

MATLAB에서의 사칙연산

이번에는 변수를 사용해봅시다. = 연산자를 이용해서 변수에 값을 할당할 수 있습니다. 이 때 C/C++ 그리고 파이썬(Python) 언어와 동일하게 변수로 사용할 수 없는 규칙들이 적용됩니다. MATLAB에서는 변수의 대소문자를 다르게 인식하므로 주의해주세요. 예를 들면 mynum과 myNum을 다르게 인식합니다. 또한 MATLAB에서는 변수 이름의 최대 길이가 63임을 명심하세요.

 

MATLAB에서 변수 할당

MATLAB에서는 세미콜론(;)을 사용하면 결과가 바로 보이질 않습니다. 또한 변수를 선언하지 않고 계산한 결과는 ans라는 변수에 모두 저장이 됩니다.

 

MATLAB에서의 세미콜론과 default variable

직관적으로 변수 안에 값을 변경하고 싶을 때는 = 연산자를 통해서 변경할 수 있습니다. 변수에 마지막으로 할당한 값으로 변경됩니다.

 

MATLAB에서 = 연산자의 활용

who와 whos 명령어를 통해서 현재 MATLAB에 할당된 변수들의 정보를 확인할 수 있으며, clear 명령어를 통해서 모든 변수를 메모리에서부터 삭제할 수 있습니다.

 

MATLAB에서 who, whos 그리고 clear 명령어

또한 tab키를 통해서 자동완성을 할 수 있습니다.

 

MATLAB에서의 자동완성

 

MATLAB에서는 지정된 상수들이 있습니다. 그러한 예로는 pi와 같이 대표적으로 5가지 값들이 있습니다. 종종 사용될 예정이니 적어두겠습니다.

 

MATLAB에서의 상수값들

MATLAB에서 랜덤한 숫자, 즉 난수를 생성하기 위해선 어떻게 해야할까요? 바로 rand라는 built-in 함수가 있습니다. 이를 통해서 손쉽게 난수를 생성할 수 있습니다. 재현성을 위해서 고정된 난수를 생성 위해선 rng('shuffle') 을 사용하면 됩니다.

 

MATLAB에서의 난수 생성

위의 난수 생성의 경우 정수가 아니었습니다. 정수값인 난수를 생성하기 위해선 어떻게 해야할까요? 바로 randi 함수를 통해서 생성할 수 있습니다. 그리고 randi 함수는 최소와 최대값의 범위를 지정할 수 있습니다.

 

MATLAB에서 정수인 난수 생성

MATLAB에서 비교 연산자를 알아봅시다. MATLAB에서는 아래와 같은 연산자가 존재합니다.

  • > : 크다
  • < : 작다
  • >= : 크거나 같다
  • <= : 작거나 같다
  • == : 같다
  • ~= : 같지 않다 -> 사실 여기가 조금 헷갈릴 수 있습니다.

그리고 MATLAB에서는 연산에 대한 결과를 logical로 표현합니다. 확인해볼까요?

 

MATLAB에서의 비교 연산 결과

비교 연산 외에도 아래와 같은 논리 연산자들이 존재합니다.

 

  • ~ : not 연산
  • || : or 연산
  • && : and 연산
  • xor : xor 연산

논리 연산표
MATLAB에서의 논리 연산 결과

여기서 주의해야할 점이 있습니다. 만약 3 < x < 5 와 같은 연산이 있다면 어떻게 될까요? x = 7 일 경우 결과가 어떨까요?

 

MATLAB에서 논리 연산할 시 주의할 예제

 

당연히 만족하지 못하므로 false라고 생각되어 0이 나올 것이라고 생각되겠지만, 결과는 1이 나옵니다. 즉 참이라는 이야기죠. 직관적이지 않을 수 있는데 아래와 같이 해석될 수 있습니다. 

 

MATLAB에서 논리 연산할 시 주의할 예제에 대한 처리 과정

마지막으로 MATLAB에서의 연산자들에 대한 우선순위는 아래 표와 같이 정리될 수 있습니다. 가장 높은 우선순위를 가진 것은 괄호()이고 역시나 가장 낮은 우선순위를 가진 것은 할당할 때 쓰이는 = 연산자입니다.

 

MATLAB에서 우선순위 정리표

 


이 외에도 MATLAB에 대한 기초적인 문법이 있을 수 있지만 필수적인 문법들만 살펴보았습니다. 다음 2강에서는 MATLAB에서 벡터와 행렬을 처리하는 방법을 알아보겠습니다. 여기까지 읽어주셔서 감사합니다. 댓글로 궁금하신 점을 남겨주시면 최대한 답변해드리겠습니다.