본문 바로가기
CS전공강의/디지털 이미지 프로세싱

MATLAB 매트랩 기초 보충(1)

반응형

[MATLAB 기초 PART1 ~커맨드창 파트까지]

https://www.youtube.com/watch?v=16AuurBEVuM&list=PLhJDbPinRWjt2uwoWljbgl_jIatE8J5HL&index=6 

 

매트랩을 써본 적이 없는데... 디지털 이미지 프로세싱, 무선보안 강의가 모두 4학년 편성과목이다 보니 과제에서 매트랩 활용을 당연하게 생각하신다. 쓸 수 없으면 과제 제출을 아예 못하는 상황^^... 유튜브에 압축된 좋은 강의를 찾아서 속성으로 정리해보겠다!

 


모든 내용을 정리하기보다는, 내가 잊을 것 같은 포인트, 낯선 포인트 위주로 정리할 예정!

 

🐣세미콜론의 역할

커맨드창에서 ;을 작성하면 결과를 보여주지 않고, 작업공간에만 반영시킨다. 

작업공간에는 example변수에 5가 할당되었으나, 커맨드 창에서는 결과를 반복해서 보여주지 않음

🐣행렬/벡터 각각의 요소 기준으로 연산하기

 

[제곱 연산 예시]

1 x 3 행렬의 각 요소를 제곱시킬 때,

.연산자를 활용하면 각 요소를 기준으로 연산을 진행할 수 있다.

.연산자 없이 사용하면 이렇게 오류가 난다 ㅋ

 

[곱셈 연산 예시]

위의 .연산자를 활용하여 행렬 간의 곱셈을 진행해보자.

단순히 *연산만 써버리면 오류가 난다!

.*로 연산했을 때만 같은 인덱스에 해당하는 요소끼리 곱해진다.

그냥 행렬의 곱을 하기 위해서는, 오류 문구에서도 알 수 있듯이 mxn // nxp 이런식으로 첫 번째 행렬의 열 개수, 두 번째 행렬의 행 개수가 일치해야만 한다.

 

1 x 3 행렬과 3 x 1 행렬처럼 형식이 다른 두 변수의 곱을 진행하면 위와 같이 나온다!

이건 예상하지 못했는데,,, 몇 가지 예시를 추가적으로 보고 파악해야겠다.

이렇게 하니 패턴이 보이는 듯하다!

 

각 요소에 대한 곱도 크기가 호환되지 않는 경우가 있다.

 

🐣0행렬 만들기

zeros(3,2) 

= 3 x 2 의 0행렬이 만들어짐

 

zeros(3)

= 3 x 3 의 0행렬이 만들어짐 

 

유사하게 ones를 활용하면 1행렬이 만들어짐

 

🐣단위행렬

단위행렬은  주대각선은 1, 나머지는 모두0

활용 예시

 

🐣열 연산이 우선! - sum() max() min()

매트랩에서는 '열 연산'이 우선이므로 "각 열의 합" 

cf) 하나의 행일 때, 해당 행의 요소를 모두 더한 값이 나옴

max(a) min(a)하면 a행렬의 각 열의 최댓값 / 최솟값이 나옴 

 

🐣size()와 length()

size()는 위와 같이 (행 길이) (열 길이)를 출력한다.

length()는 size와 다르게 위의 두 개의 값 중 더 큰 값을 출력한다. 

 

🐣인덱싱

A(2, 1:3)

A의 2행에서 1부터 3번째까지의 값을 볼 때

 

A(2, 1:end)

A의 2행에서 첫번째 값부터 끝까지의 값을 볼 때

 

A(2, :)

A의 2행 전체를 볼 때

 

🐣whos 

작업공간에 있는 정보들을 보여줌

whos(A)처럼

특정 변수 A에 대한 정보만을 볼 수 있음


쉬운 내용인데 진도를 빠르게 못 나가는 것 같고 ... 시간은 부족해도 기초는 탄탄하게 하고 싶구 ... 

시간을 잘 활용해보자 ㅠㅠ

반응형