MATLAB 사용법 정리

HJTN·2022년 10월 12일
0

Programming Language

목록 보기
1/1

MATLAB 개요

MATLAB(Matrix Laboratory)은 MathWorks 사에서 C언어로 개발한 수치 해석, 행렬 연산, 신호 처리, 간편한 그래픽 기능 등의 프로그래밍 환경을 제공하는 공학용 Software이다. 주로 벡터, 행렬과 같은 자료를 사용하기 때문에 차원화(Dimensioning)할 필요가 없고, Fortran, C, Pascal 등의 기타 언어들을 사용하지 않고도 쉽게 계산할 수 있는 환경을 제공한다.
MATLAB에서는 M-file을 생성할 수 있다. 여기서 M-file은 매크로 파일인데 Interpreter 방식으로 실행되며 사용자가 명령어를 직접 작성하고 저장할 수 있는 파일이다. M-file에는 기본적인 명령어 뿐만 아니라 함수도 작성할 수 있고, 다른 매크로 파일들을 불러와서 작성할 수도 있다. M-file에는 Script 파일과 Function 파일 2가지 종류가 있으며, MATLAB의 내장된 Editor나 메모장을 통해 표준 ASCII 파일 형태로 작성한다. 여러 개의 매크로 파일로 나눠서 작성하고 다시 한 번에 불러올 수 있어서 큰 프로그램을 쉽게 다룰 수 있다.


MATLAB 설치

1. MATLAB 사이트 접속

👉 Matlab 사이트
❗ 사이트 로그인 시 캠퍼스 이메일을 사용하면 무료 다운로드 가능

2. 우측 상단의 MATLAB 설치 버튼 클릭


👉 이후 Window / macOS / Linux용 다운로드 버튼 클릭


MATLAB 사용법

MATLAB 화면 구성

  1. 현재 폴더(Current Folder): 현재 경로에 있는 파일 표시
  2. 명령창(Command Window): ">>" 부분에 명령 입력
  3. 작업 공간(Workspace): 명령어로 실행된 결과, 입력된 자료(벡터, 행렬, 기타 데이터 자료 등), 파일에서 가져온 데이터 등을 저장한 공간

❗ 데이터를 입력할 때 변수를 지정, 변수를 지정하지 않으면 임의의 ans 변수에 저장됨
❗ 명령어 끝에 세미콜론(;)을 붙이면 명령창에 결과를 표시하지 않음

기본적인 명령어

  1. version : MATLAB version 확인
  2. help "특정 Command" : 특정 명령어에 대한 도움말 표시
  3. type "M-file 이름" : M-file의 내용 출력
  4. dir : 현재 Directory의 파일 목록 출력
  5. diary : MATLAB의 명령창의 내용을 텍스트 파일로 저장
  6. which "file 이름" : 파일의 Directory 위치 출력
  7. whos : 작업 공간에 저장된 변수의 목록 출력
  8. clear : 작업 공간에 저장된 변수를 모두 제거
  9. clc : 명령창의 내용 모두 제거
  10. % : 주석 역할

기본적인 연산자

  • 산술 연산자
  1. + : 덧셈
  2. - : 뺄셈
  3. * : 곱셈
  4. .* : 요소별 곱셈
  5. / : 나눗셈 (오른쪽 값으로 나눔)
  6. ./ : 요소별 나눗셈
  7. \ : 나눗셈 (왼쪽 값으로 나눔)
  8. .\ : 요소별 나눗셈
  9. ^ : 거듭제곱
  10. .^ : 요소별 거듭제곱
  11. ' : 켤레복소수 전치
  12. .' : 일반 전치
  • 관계 / 논리 연산자
  1. == : 같음
  2. ~= : 다름
  3. > : ~보다 큼
  4. >= : ~보다 크거나 같음
  5. < : ~보다 작음
  6. <= : ~보다 작거나 같음
  7. & : 논리 연산자(AND)
  8. | : 논리 연산자(OR)
  9. ~ : 논리 연산자(NOT)
  10. xor() : 논리 연산자(XOR) 역할을 하는 함수
    ❗ True == 1 / False == 0

배열 생성 및 결합

  1. 전체 요소들을 대괄호([])로 감쌈
  2. 쉼표(,) 혹은 공백으로 한 행의 요소들을 구분
  3. 세미콜론(;)으로 여러 행을 구분
  4. 쉼표(,)세미콜론(;)으로 서로 다른 배열을 결합할 수 있음
  5. ones(m,n), eye(m,n), zeros(m,n), rand(m,n), randn(m,n), magic(m,n) 함수로 행렬을 만들 수 있음
  6. 행 index와 열 index를 이용하여 특정 요소를 참조 가능 👉 배열 Indexing
    ❗ 첫 요소의 index는 1로 시작 (C, Python 등의 언어와 다름)
  7. 콜론(:)으로 배열 요소 여러 개를 참조하거나 등간격 배열 생성

배열에 사용하는 기타 함수

  1. zeros(m,n) : 모든 요소가 0인 M x N 행렬 생성

  2. ones(m,n) : 모든 요소가 1인 M x N 행렬 생성

  3. eye(m,n) : 대각성분이 모두 1인 M x N 행렬 생성

  4. rand(m,n) : 임의의 요소로 구성된 M x N 행렬 생성

  5. randn(m,n) : 표준정규분포를 따르는 M x N 행렬 생성

  6. diag(variable) : 행렬의 대각성분 추출 or 벡터를 대각 행렬로 만듦
    ❗ diag(variable,1) : 기존의 대각성분을 기준으로 바로 위의 대각성분 반환

  7. rot90() : 행렬을 90도 돌림

  8. fliplr() : 행렬을 왼쪽에서 오른쪽으로 뒤집음

  9. flipud() : 행렬을 위에서 아래로 뒤집음

  10. tril() : 행렬의 하삼각행렬 반환

  11. triu() : 행렬의 상삼각행렬 반환

  12. transpose() : 행렬의 전치행렬을 반환

  13. sprand(m,n,den) : 전체 요소(m*n)의 den만큼 임의의 요소 생성 👉 Sparse Matrix 생성

  14. full(variable) : 축약된 형태의 변수를 Matrix 형태로 반환

  15. reshape(variable,m,n) : 행렬을 M x N 형태의 행렬로 변경

  16. A(2,:) = [] : 행렬의 2번째 행을 지움

  17. linspace(a,b,n) : a부터 b까지의 값을 등간격으로 나눈 n개의 요소(벡터) 반환 (a:(b-a)/(n-1):b와 같음)

  18. inv(variable) : 행렬의 역행렬 반환

  19. size() : 행렬의 크기 반환

  20. length() : 행렬의 크기 중 가장 큰 값 반환

  21. find() : 0이 아닌 요소의 index 반환

  22. sort() : 배열의 요소 정렬

출력 형식 조절

  1. format short : 0.001 ~ 1000 사이의 수를 소수점 이하 4자리의 고정 소수점으로 표시 (그 외의 범위는 short e 형식으로 표시)
  2. format long : 0.001 ~ 1000 사이의 수를 소수점 이하 15자리의 고정 소수점으로 표시 (그 외의 범위는 long e 형식으로 표시)
  3. format short e : 소수점 이하 4자리 수의 과학적 표기법
  4. format long e : 소수점 이하 15자리 수의 과학적 표기법
  5. format short g : 고정 or 부동 소수점 중 편한 방법으로 표시 (유효 숫자 = 5)
  6. format long g : 고정 or 부동 소수점 중 편한 방법으로 표시 (유효 숫자 = 15)

기본 내장 함수

  1. sqrt() : 제곱근
  2. nthroot() : n제곱근
  3. exp() : 지수함수 (exe^x = sum(x.^(k-1)./factorial(k-1))
  4. abs() : 절대값
  5. log() : 자연로그
  6. log10() : 밑이 10인 로그
  7. factorial() : 계승함수 (x!x!)
  8. sin() / sind() : d가 붙으면, 단위는 / 아니면, 단위는 라디안
  9. cos() / cosd() : d가 붙으면, 단위는 / 아니면, 단위는 라디안
  10. tan() / tand() : d가 붙으면, 단위는 / 아니면, 단위는 라디안
  11. cot() / cotd() : d가 붙으면, 단위는 / 아니면, 단위는 라디안
  12. 쌍곡 삼각 함수 : sinh, cosh, tanh, coth
  13. 통계 관련 함수 : rand, randn, mean, std, var, min, hist, abs, median

기본 내장 변수

  1. ans : 가장 최근 계산값을 임시 저장한 변수
  2. eps : 두 수 사이의 최소 차이 (2522.220410162^{-52}≒2.2204*10^{-16})
  3. i, j : 허수
  4. Inf : 무한히 큰 수
  5. NaN : 0/0과 같이 정의할 수 없는 수치
  6. pi : π (3.1415926535897...)

Round-off 함수

  1. fix() : 0에 가까운 정수로 어림
  2. floor() : 음의 무한대와 가까운 정수로 어림
  3. ceil() : 양의 무한대와 가까운 정수로 어림
  4. mod() : 나머지 연산 (a-floor(a./b)*b의 결과와 같음)
  5. rem() : 나머지 연산 (a-fix(a./b)*b의 결과와 같음)
  6. round() : 가까운 정수로 어림
  7. sign() : 값의 부호를 나타냄

M-file 함수 생성

❗ 함수의 이름과 파일 이름이 같아야 함

function "출력 변수"="함수 이름"("입력 값...")
	"명령어 내용"
end

✳️ exist name : name(파일, 디렉토리 등)의 유형을 숫자로 반환
✳️ keyboard : 실행 중인 프로그램을 일시 중지하고 키보드에 제어권 부여 👉 dbcont로 실행 재개

반복문

for index = "범위"
	"명령어 내용"
end

while "조건문"
	"명령어 내용"
end

✳️ break : 반복문 종료 (해당 반복문의 end 뒤에 오는 명령어로 이동)
✳️ continue : continue 이후의 명령어를 실행하지 않고 바로 다음 반복 시작
✳️ return : MATLAB이 컨트롤을 호출 함수에 강제로 반환하도록 함

조건문

if "조건1"
	"명령어"
elseif "조건2"
	"명령어"
else
	"명령어"
end

switch "변수"
	case "조건1"
		"명령어"
	case "조건2"
		"명령어"
	otherwise
		"명령어"
end
profile
Hello~

0개의 댓글