[디지털 영상처리 기초] 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에 넣음
----------------------------------------------------------------------
'디지털영상처리기초 > Matlab' 카테고리의 다른 글
[디지털 영상처리 기초] 6. 화소 단위 영상처리 2 (0) | 2021.06.24 |
---|---|
[디지털 영상처리 기초] 5. 화소 단위 영상처리 (0) | 2021.06.22 |
[디지털 영상처리 기초] 4. 영상 디스플레이 2 (0) | 2021.06.21 |
[디지털 영상처리 기초] 3. 영상 디스플레이 (0) | 2021.06.20 |
[디지털 영상처리 기초] 2. 영상과 매트랩 (0) | 2021.06.19 |
댓글