본문 바로가기
디지털영상처리기초/Matlab

[디지털 영상처리 기초] 1. 매트랩 사용

by CodingKwon 2021. 6. 18.

[디지털 영상처리 기초] 1. 매트랩 사용

 

매트랩에 관한 기본적인 사용방법입니다.

 

----------------------------------------------------------------------

N = 5 % 스칼라 5

v = [1 0 0] % 1행 벡터

v = [1;2;3] % 1열 벡터

v = v' % 행과 열을 transpose

v = [1:.5:3] % 1부터 0.5씩 3까지 증가

v = pi*[-4:4]/4 % pi값을 -4~4까지 값을 4로 나눈 값을 구함

v = [] % 빈 벡터

m = [1 2 3; 4 5 6] % 2x3 행렬을 1행 1,2,3 2행 4,5,6으로 구성

m = zeros(2,3) % 2x3 행렬을 0값으로 만듦

v = ones(1,3) % 1x3 행렬을 1값으로 만듦

m = eye(3) % 3차 단위 행렬을 생성한다

v = rand(3,1) % 3개의 0~1 사이의 실수 값을 만들어 냄

save matrix_data m % matrix_data.mat 이름으로 파일을 저장합니다.

----------------------------------------------------------------------

clear all % 현재 매트랩에 저장된 변수를 모두 지웁니다.

load matrix_data % 저장된 matrix_data 파일에 데이터를 불러옵니다.

 

v = [1 2 3]; % 접근 가능한 벡터

length(v) % v벡터의 길이

v(3) % v벡터의 3번째

 

m = [1 2 3; 4 5 6]

m(1, 3) % m행렬의 1행 3열 접근 : 3

m(2,:) % m행렬의 2행 모두 접근

m(:,1) % m행렬의 1열 모두 접근

----------------------------------------------------------------------

size(m) % m행렬의 크기를 알려줌

size(m,1) % m행렬의 행의 갯수

size(m,2) % m행렬의 열의 갯수

 

m1 = zeros(size(m)) % m행렬의 크기로 영행렬 m1을 만듦

 

who % 변수의 목록을 보여줌

whos % 변수의 목록, 크기, 타입을 보여줌

----------------------------------------------------------------------

a = [1 2 3 4]; % 벡터 생성

2 * a % 벡터 a의 스칼라값들에 2를 곱함

a / 4 % 벡터 a의 스칼라값들에 4를 나눔

b = [5 6 7 8]; % 벡터 생성

a + b % pointwise(원소 대 원소)로 벡터를 더함

a - b % pointwise(원소 대 원소)로 벡터를 뺌

a .^ 2 % pointwise(원소 대 원소)로 벡터를 더함

a .* b % pointwise(원소 대 원소)로 벡터를 곱함

a ./ b % pointwise(원소 대 원소)로 벡터를 나눔

 

log([1 2 3 4]) % 1 2 3 4를 자연로그에 넣음

round([1.5 2; 2.2 3.1]) % 행렬의 각 원소값을 반올림함

----------------------------------------------------------------------

a = [1 4 6 3]

sum(a) % 벡터 a의 원소의 합

mean(a) % 벡터 a의 원소의 평균

var(a) % a의 분산값 (sigma ^ 2)

std(a) % a의 표준편차 (sigma)

max(a) % a의 가장 큰 값

 

a = [1 2 3; 4 5 6] % 2x3 행렬 a 생성

mean(a) % 각 열의 평균

max(a) % 각 열의 최대 값

max(max(a)) % 행렬 a의 최대 값

max(a(:)) % 행렬 a의 최대 값을 구하는 다른 방법

----------------------------------------------------------------------

[1 2 3] * [4 5 6]' % 1x3행렬과 3x1행렬의 곱 1x1 값을 출력합니다.

[1 2 3]' * [4 5 6] % 3x1행렬과 1x3행렬의 곱 3x3 값을 출력합니다.

a = rand(3,2) % 3x2행렬의 랜덤한 0~1사이 실수 값을 생성합니다.

b = rand(2,4) % 2x4행렬의 랜덤한 0~1사이 실수 값을 생성합니다.

c = a * b % 3x2행렬과 2x4행렬의 곱인 3x4행렬 값을 생성합니다.

a = [1 2; 3 4; 5 6] % 3x2행렬 a을 생성합니다.

b = [5 6 7]; % 1x3 벡터 b를 생성합니다.

b * a % 1x3행렬과 3x2행렬의 곱 1x2 값을 구합니다.

a' * b' % 2x3행렬과 3x1행렬의 곱 2x1 값을 구합니다.

----------------------------------------------------------------------

a = [1,2,3,4]; % 입력신호 1

b = [-1, 1]; % 입력신호 2

conv(a,b) % 2개의 신호를 convolution합니다

----------------------------------------------------------------------

save mysession % mysession.mat으로 변수 값을 저장합니다.

save mysession a b % mysession.mat에 변수 a와 b만 저장합니다

clear a b % 변수 a와 b를 지웁니다.

clear all % 모든 변수를 지웁니다.

load mysession % mysession을 불러옵니다.

a % 변수 a의 값

b % 변수 b의 값

----------------------------------------------------------------------

v = [3 5 -2 5 -1 0] % 반복문 1: v 벡터 생성

u = zeros(size(v)) % v의 크기만큼 0으로 초기화

for i = 1:size(v,2) % 반복문 1~6만큼

    if( v(i) > 0 ) % 조건문 v(i)가 0보다 크다면

        u(i) = v(i) % u(i)에 v(i)를 넣음

    end

end

u % u를 출력

 

v = [3 5 -2 5 -1 0] % 반복문 2: v 벡터 생성

u2 = zeros(size(v)); % v의 크기만큼 0으로 초기화

ind = find(v>0) % v>0인 원소의 인덱스를 알려줌

u2(ind) = v(ind) % v>0인 v를 u2에 넣음

----------------------------------------------------------------------

댓글