MATLAB 기초 by 이대익 1
MATLAB이란? 1. Matrix Laboratory ● 행렬을 기본적 자료의 단위로 처리하는 프로그램 ● MATLAB 특징 선형 대수, 행렬 계산, 미적분, 알고리즘 개발, 모델링 등을 제공하는 고성능 언어 M- 파일을 사용하므로써 문제를 해결 할 수 있는데, 텍스트 파일이여서 쉽게 작성 2
MATLAB이란? 2. 행렬 ● 행렬 원소들은 행으로 입력 ● 같은 행은 공백이나 쉼표로 구분 ● 행의 구분은 세미클론(;) 이나 Entert로 구분 ● 전체 원소는 대괄호([])로 설정 3
MATLAB이란? 2. 행렬 ● 숫자, 함수 또는 수식은 문자열과 함께 한 행렬의 원소로 사용할 수 없다. ● 문자열은 인용부호(‘)를 사용하여 입력한다. ● 문자열 입력 시 길이를 맞춰야 한다. ● 숫자 뒤에 i, 또는 j를 부임으로써 복소수를 표현한다. 4
MATLAB이란? ● 복소수가 원소인 복소 행렬을 구성하는 방법 1 ● 복소수가 원소인 복소 행렬을 구성하는 방법 2 5
MATLAB이란? ● S = 𝑛=1 15 𝑛/1 계산 시 ● 수식이 길어져 …을 사용해 요약할 수 있다. ● Pi에서 볼 수 있듯이 MATLAB은 소수점 아래 4자리 수까지 정해져 있다. 6
MATLAB이란? ● Pi에서 볼 수 있듯이 MATLAB은 소수점 아래 4자리 수까지 정해져있다. 하지만 명령어를 통해 다양하게 출력할 수 있다. 소수점 아래 14자리 소수점 4자리 분수 형태 7
MATLAB이란? ● 1장 연습문제 1번 A= [3 5; 5 3; 2 1;] B =[2 -3 -2; 4 5 -7; 1 11 16;]을 표현 8
MATLAB이란? ● 1장 연습문제 2번 A=[1 2]와 B = [3 4]를 입력시키고 결과를 비교하라 9
MATLAB이란? ● 1장 연습문제 3번 AX = b의 해를 구하기 위한 X=A\B를 사용하여 선형방정식의 해를 구하라 x + 2y + 3z =11 3x – y + 2z =12 2x - 2y + z=2 10
MATLAB이란? ● MATLAB 행렬 연산기호 11
MATLAB이란? ● MATLAB 행렬 덧셈, 뺄셈 예제 2-1 두 행렬 A와 B의 합과 차를 구하라 4 5 6 1 3 5 12
MATLAB이란? ● MATLAB 행렬 곱셈 A,B의 행렬의 각각의 크기가 (m * x), (q * n) 이면 A, B는 p,q가 같을 때 가능하다. 이때 곱 AB는 (m * x)이다. 예제 2 – 2 AB의 곱은? A = 1 2 3 B = 1 2 4 5 6 3 4 5 6 13
MATLAB이란? ● 결과적으로 왼쪽 나눗셈 A\b는 inv(A)*b와 같다 ● MATLAB 행렬 나눗셈 왼쪽 나눗셈 오른쪽 나눗셈 1. 왼쪽 나눗셈 행렬 A가 역행렬을 갖는 행렬이면 AX =b의 해 X를 구하기 위해 사용한다. ● X = A\b : AX = b의 해 X를 구한다. 역행렬을 구하는 명령어 ● Inv(A) ● 결과적으로 왼쪽 나눗셈 A\b는 inv(A)*b와 같다 14
MATLAB이란? ● MATLAB 행렬 나눗셈 왼쪽 나눗셈 예제 2-3 연립방정식의 해를 구하라 x + 3y – 9z = 32 풀이 : 연립방정식을 선형방정식 AX = b 3 5 -3 x 32 5 3 2 y = 27 2 1 -3 z -13 15
MATLAB이란? ● 결과적으로 오른쪽 나눗셈 B/A는 B*inv(A)와 같다. 왼쪽 나눗셈 (A’ \ B’)’ 와도 같다. 왼쪽 나눗셈 오른쪽 나눗셈 2. 오른쪽 나눗셈 행렬 방정식 X * A = B의 해 X를 구하기 위해 사용한다. ● X = B/A : X*A = B의 해 X를 구한다. ● 결과적으로 오른쪽 나눗셈 B/A는 B*inv(A)와 같다. 왼쪽 나눗셈 (A’ \ B’)’ 와도 같다. 16
MATLAB이란? ● MATLAB 행렬 나눗셈 오른쪽 나눗셈 예제 2-4 A, B에 대해 XA=B를 만족하는 X 값은 ? 3 7 -3 19 A = -2 4 B = 8 36 17
MATLAB을 통한 영상 구현 ● MATLAB Imread() 원래의 이미지 파일은 RGB 즉, RED, GREEN, BULE로 이루어져 있고, X*Y*Z 의 3차원 배열로 구성되어있다. 사용방법은 I = Imread(‘filename. Extension’) 즉 경로를 입력해 주면 된다. Imshow() Imshow 함수는 배열의 형태로 된 이미지 파일을 볼 수 있도록 해주는 함수 이다. 사용방법은 Imread에서 정의한 I또는 다른 정의를 imshow(i)로 불러오면 된다. 18
MATLAB을 통한 영상 구현 ● MATLAB 1번 사진 파일 실제 코드 1번 사진 파일 실제 코드 I = imread('C:\patient10_run1.tif'); %읽을 파일 위치를 불러와 배열로 만든다. imshow(i) % 영상을 출력한다. 19
MATLAB을 통한 영상 구현 ● MATLAB 2번 사진 파일 실제 코드 2번 사진 파일 실제 코드 I = imread('C:\patient10_run1.tif'); %읽을 파일 위치를 불러와 배열로 만든다. i=single(i); % 영상 밝기 조절 위해 함수 선언 4바이트. i=i/128 % 영상의 밝기를 최대로 하기 위해 single이 최대로 읽는 128로 설정 imshow(i); %영상을 출력한다. 20
MATLAB을 통한 영상 구현 ● MATLAB 3번 사진 파일 실제 코드 3번 사진 파일 실제 코드 i = imread('C:\rose1024.tif'); %읽을 파일 위치를 불러와 배열로 만든다. ip = i(end:-1:1,:); % 원래 코드는 1:1:end 순으로 가는 것이 코드를 읽는 순인데, ip는 i의 마지막 요소 와 -1, 1의 값을 추출한다. 결과적으로 반전되어 나타난다. imshow (ip); // 영상을 출력한다. 21
MATLAB을 통한 영상 구현 ● MATLAB 4번 사진 파일 실제 코드 4번 사진 파일 실제 코드 i = imread('C:\rose1024.tif'); %읽을 파일 위치를 불러와 배열로 만든다. is=i(1:2:end,1:2:end); %사진을 1행, 2행을 시작으로 끝 행렬까지 1열, 2열을 시작으로 끝 열까지 모두 나타내라 즉 모든 데이터를 따오는 것이다. . imshow (is); % 영상을 출력한다. plot(i(512,:)); %plot함수는 그래프를 그려주는 함수로써 i의 이미지에 512행에서 끝까지의 모든 수를 그래프로 나타내라는 뜻이다. 22
MATLAB을 통한 영상 구현 ● MATLAB 사진 두 개를 합치는 코드 23
MATLAB을 통한 영상 구현 ● MATLAB 사진 두 개를 합치는 영상 + 24
MATLAB을 통한 영상 구현 ● MATLAB 일정한 그림만 뽑는 코드 25
MATLAB을 통한 영상 구현 ● MATLAB 기본 사진 파일 사람얼굴만 출력한 사진 파일 100만 출력한 사진 파일 기본 사진 파일 사람얼굴만 출력한 사진 파일 100만 출력한 사진 파일 입력한 코드 subim(f, 208, 182, 10, 142) 26