You are on page 1of 32

2023

AI프로그래밍

Ch.1 ) MATLAB 기초

박지훈
부산대학교 항공우주공학과
vazihoon@pusan.ac.kr

부산대학교 항공우주공학과 -1- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
AI프로그래밍

 오늘의 학습 목표

 MATLAB 작동시킬 줄 알기

 MATLAB에 명령어 입력하여 출력 확인하기

 코딩의 최소 준비 :

m-file 생성법 및 기본 표현법 깨우치기

부산대학교 항공우주공학과 -2- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 개요 AI프로그래밍

 MATLAB이란??
 MATLAB : MATrix LABoratory

 즉 배열기반의 수치해석 프로그래밍

 수치 해석, 행렬 연산, 신호 처리 그리고 간편한 그래픽 기능을 통합하여 일반적인 컴퓨터 언어를 이용한
프로그래밍을 하지 않고서도 고난도의 계산 문제를 손쉽게 풀 수 있게 해주고, 그 결과 값을 가시화하는
프로그램

 MATLAB의 특징

 대화형 인터페이스(interface) 지원
- 명령 창(command window)을 통해 사용자와 실시간 상호 작용 가능
- 인터프리터 언어(interpreter language)
- 양방향 세션 처리 방식

부산대학교 항공우주공학과 -3- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 개요 AI프로그래밍

 MATLAB이란??
 MATLAB의 특징

 기본적으로 변수 선언이 필요 없음

– C언어 같은 경우 변수형(int, float, char 등)를 선언하지 않으면 컴파일이 되지 않음

– MATLAB은 자동으로 double 형식으로 됨, 별도 선언 시 int 등 다른 형식 사용 가능

– 문자열의 경우 자동으로 적절한 변수형으로 저장됨

 수학적(공학적) 문제를 풀기 위한 광범위한 내장함수(명령어) 존재

– 평균(mean), 합계(sum) 등 기본 연산부터 삼각함수(sin, cos 등)

– 다차방정식도 내장함수로 연산 가능

부산대학교 항공우주공학과 -4- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 개요 AI프로그래밍

 MATLAB이란??
 MATLAB과 C언어 비교 : 변수 선언 등 코드 작성 문법의 차이

- C언어 -

- MATLAB -

부산대학교 항공우주공학과 -5- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 개요 AI프로그래밍

 MATLAB이란??
 MATLAB의 특징

 배열(행렬, 벡터 등) 기반 처리방식

– 타 언어와 다르게 행렬 선언 및 연산이 직관적이며 편리함

– 예를 들어 C언어와 비교한다면…

1 3 2 2 1 2 33 35 7
7 6 3 × 7 8 1 = ?? 71 70 23
3 0 3 5 5 1 21 18 9 - MATLAB -

- C언어 -
부산대학교 항공우주공학과 -6- DEPARTMENT OF AEROSPACE ENGINEERING.
2023
MATLAB 개요 AI프로그래밍

 MATLAB이란??
 다양한 분야에 사용할 수 있는 Toolbox가 존재

 각 분야별로 이용자가 문제에 적용할 수 있도록 미리 만들어진 함수의 집합

부산대학교 항공우주공학과 -7- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 시작하기 AI프로그래밍

 MATLAB 실행
 바탕화면의 "MATLAB 2022b" 실행

부산대학교 항공우주공학과 -8- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 시작하기 AI프로그래밍

menu tab
 MATLAB 초기 화면

file path

현재 폴더 창
current 작업 공간 창
folder workspace
window window

명령창 : command window

세부 정보 창
detail info.

부산대학교 항공우주공학과 -9- DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 홈 탭 - 파일
 새 파일을 생성하거나 저장한 파일을 불러올 때 사용

 생각보다 누를 일은 없을지도…??

이건.. 학기 중반부에..?

사실상 얘 말고는 누를 일이 잘 없습니다.

부산대학교 항공우주공학과 - 10 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 홈 탭 - 파일
 새 스크립트 ??

 MATLAB은 라인으로 명령을 입력 받아 처리하는 방식

 이를 일괄적으로 처리하기 위한 구문을 스크립트(script)

부산대학교 항공우주공학과 - 11 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 홈 탭 - 변수
 작업 공간 창에 있는 변수들을 저장/불러오기

 ex) 랜덤으로 결과가 출력되는 프로그램을 작성했는데 특정한 변수를 저장할 필요가 있을 경우

 ex) 전산실에서 작업을 하다가 장소를 옮겨야 할 때 변수를 저장해서 가져갈 경우

코딩하다보면 변수는 저절로 생겨있음.


즉 누를일은 없음

꿀팁 : 커맨드창에 명령어 : clear 변수이름 (또는 all)

부산대학교 항공우주공학과 - 12 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 홈 탭 - 코드
 코드 분석 : 현재 작성된 코드의 오류 알림, 또는 최적화 방법 제시

 역시 이번 학기에는 누를 일이 거의 없음 …

부산대학교 항공우주공학과 - 13 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 홈 탭 - 코드
 실행 시간 측정

 전체 코드의 실행 시간, 함수, 변수 별 소요 시간과 호출 횟수 알려줌

 유용할 수 있는 기능이나 이런 게 있구나 정도로만 알고 있으면 됨

꿀팁 :
커맨드창에
명령어 : clc

부산대학교 항공우주공학과 - 14 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 홈 탭
옵션을 원하는 대로 바꿀 수 있음
 그외

왼쪽에 더 편한 거 있음

꿀팁 ) 커맨드창에 명령어 : clc

부산대학교 항공우주공학과 - 15 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 플롯/앱 탭

부산대학교 항공우주공학과 - 16 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 변수 선언

 변수명에는 영문자, 숫자, 밑줄 사용 가능함

 영문자의 대,소문자는 별개의 변수로 취급

 주의 사항

 단 맨 앞은 무조건 영문자가 와야 함

 일부 표현은 내장변수로 사용 중임 → 선언 시 덮어쓸 수는 있음…

그래서 보통 MATLAB에서는
m,n,…을 사용함

부산대학교 항공우주공학과 - 17 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 MATLAB 기본 연산자

부산대학교 항공우주공학과 - 18 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 여태껏 살면서 배워온 수학문제를 MATLAB으로 해결

① 사칙연산
a1 = 12345, b1 = 98765, c1 = 77 ← 변수 선언한 거 workspace에 떠있는지 보면서
→ a1 + b1 x c1 =?

② 지수, 근호
a = 3, b = -2, c = -4

𝑏+ 𝑏2 −4𝑎𝑐
→ −
2𝑎

부산대학교 항공우주공학과 - 19 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 여태껏 살면서 배워온 수학문제를 MATLAB으로 해결

③ 로그함수
**주의**
a3 = 1000
MATLAB에서는 log가 상용로그가 아니라 자연로그임…
→ log a = ? 상용로그를 쓰고 싶으면 log10(a)를 입력하자.

𝑒 (자연상수)
a4 = 100
→ a4 * 𝑒=?

부산대학교 항공우주공학과 - 20 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 여태껏 살면서 배워온 수학문제를 MATLAB으로 해결

④ 삼각함수
**주의**
a5 = 90
MATLAB에서는 삼각함수에 기본적으로 Radian을 사용함.
→ sin a5 = ?

radian과 degree의 변환법


- deg2rad(a) : degree to radian
- rad2deg(a) : radian to degree

부산대학교 항공우주공학과 - 21 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 여태껏 살면서 배워온 수학문제를 MATLAB으로 해결

④ 삼각함수
a = 90
→ sin a = ?

사실 삼각함수 뒤에 d 붙이면 됨

부산대학교 항공우주공학과 - 22 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : command window 사용해보기


 여태껏 살면서 배워온 수학문제를 MATLAB으로 해결

⑤ 다차방정식
a = 3, b = -2, c = -4

𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0

부산대학교 항공우주공학과 - 23 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : 본격적 코딩(?)


 m-file 생성

 명령창에 한 줄씩 입력하는 원리는 동일

 이를 일괄적으로 처리하기 위한 스크립트를 작성하여 저장하는 것


→ 다음에 배울 함수와 스크립트는 차이가 있음

 홈 탭의 [새 스크립트] 클릭
함수

스크립트

부산대학교 항공우주공학과 - 24 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 편집기 탭


 새 파일을 생성하거나 저장한 파일을 불러올 때 사용

 어떤 형식이든 m-file(스크립트, 함수 등) 창을 열면 생성됨

단축키 : F5

부산대학교 항공우주공학과 - 25 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 보기 탭
 기능에 관계된 메뉴는 아니나, 코딩 시 편의성을 제공

메인 스크립트와 내부의 서브 스크립트를


한번에 보며 편집 가능

부산대학교 항공우주공학과 - 26 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB interface AI프로그래밍

 MATLAB interface : 보기 탭
 기능에 관계된 메뉴는 아니나, 코딩 시 편의성을 제공

같은 구문을 병렬로 표시

코드가 길어지면 마우스 휠을


일일히 돌리는 것도 번거로움….

부산대학교 항공우주공학과 - 27 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : 본격적 코딩(?)


 m-file 생성

 홈 탭의 [새 스크립트] 클릭

 현재 앉은 자리 PC의 원하는 곳에 실습결과물 저장할 폴더 생성

 매트랩 [현재 폴더 창]을 조작하여 저장 경로를 상기 폴더로 설정

여기!

부산대학교 항공우주공학과 - 28 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : 본격적 코딩(?)


 m-file 작성 - 주석 처리

 개발한 코드의 타 이용자, 또는 미래의 자신(!!!)이 각 함수 및 변수의 기능을 이해할 수 있도록


기록해 두는 것

 주석처리는 코드 실행에 영향을 끼치지 않는다!!


그러나 매우 중요하면서도 필수적인 절차
특히 미래의 자신에게….

 %와 %%를 사용
- %는 단순 주석 처리
- %%는 스크립트의 구역을 분할

부산대학교 항공우주공학과 - 29 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : 본격적 코딩(?)


 m-file 작성 - 세미콜론( ; ) 중요성

 C언어와 달리 문장 끝에 ;를 찍지 않아도 코드는 실행됨


;를 찍지 않으면 커맨드 창에 해당 변수가 모두 출력됨

 사이즈가 큰 (엑셀같은) 데이터를 변수로 지정 시 ;를 쓰지 않으면…..

부산대학교 항공우주공학과 - 30 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
MATLAB 실습 AI프로그래밍

 MATLAB 활용 : 본격적 코딩(?)


 앞에 했던 수학문제들 스크립트로 작성

 사칙연산 / 지수,근호 / 로그함수 / 자연상수 / 삼각함수 / 다차방정식 총 6개의 앞선 예제

 실행을 눌렀을 시 커맨드 창에 각 문제의 답 6개만 출력되어야 함


→ 출력되는 변수명 : Ans_1, Ans_2, Ans_3, … , Ans_6

 나머지 내부 변수명은 편하신 대로 작성(식 바로 입력하지 말것)

 각 문제는 주석 기능을 이용하여 구역을 나눌 것

 스크립트 내 "해"에 해당하는 변수 우측에 주석으로 표시할 것

 파일명
AI_ch1_학번_이름.m

부산대학교 항공우주공학과 - 31 - DEPARTMENT OF AEROSPACE ENGINEERING.


2023
마무리 AI프로그래밍

부산대학교 항공우주공학과 - 32 - DEPARTMENT OF AEROSPACE ENGINEERING.

You might also like