2) Tech

5-1. (Matlab) 알아두면 유용한 매트랩, 행렬 인덱스(indexing) 응용

Technical_Supporter 2020. 3. 22. 20:32
반응형

안녕하세요!!

 

오늘은 지난 행렬 인덱스(indexing) 게시물에 이어 행렬 인덱싱의 간단한 응용을 공유해볼까합니다!

 

1.행렬 인덱싱 응용

 

먼저 Matlab에서 3x3 행렬 하나를 생성합시다.

 

A = [1,2,3; 4,5,6 ; 7,8,9]

 

(1 2 3)

(4 5 6)

(7 8 9)    3x3 행렬 생성

 

인덱스에 접근하기전!!

 

지난 시간 행렬의 인덱스 접근 할 때 한가지만 기억하면 된다고 말씀드렸습니다!

 

A(접근 행, 접근 열) 

 

- 열 전체 Indexing

 

해당 행렬에서 원하는 열의 전부를 추출하고 싶다면

 

아래 그림과 같이 행은 1~n 까지 즉, 모든 행을 접근해야합니다.

 

열 추출

 

y = A( : , 2)     ->    괄호 안에 ':' 는 모든 행 접근을 의미합니다. 뒤에 숫자 2는 접근 열번호를 의미합니다.

 

매트랩 열 전체 추출

 

- 행 전체 Indexing

 

반대로 행전체 추출은 모든 열에 접근해야합니다.

 

행 추출

위그림과 같이 n 번째 행을 추출하려면, n번째 행과 1~n까지 열에 접근해야합니다.

 

y = A(3, :)      ->   괄호 안에 ':' 는 모든 열 접근을 의미합니다. 앞에 숫자 3는 접근 행 번호를 의미합니다.

 

매트랩 행 전체 추출

 

-  열 & 행 Indexing 응용

Matrix( , )

특정행렬의 행과 열은 ',' 로 구분된다고 했습니다.

 

그럼,

A 행렬의 1행 2,3열 값과 3행 2, 3열의 값을 동시에 추출하고 싶습니다!

 

이땐 ( ) 안에서 []괄호를 이용해 행과 열을 묶어줍니다.

 

z = A([1,3], [2,3])     ->   ( [ 1행, 3행]  ,  [2열, 3열 ] ) 이와 같은 의미입니다. 

 

행 열 동시 접근


B = A(end:-1:1, :)    ->    end는 해당 행렬의 맨 끝 행 또는 열을 의미합니다. 

 

이는 끝행 부터 시작 해서 -1씩 다음행에 접근해 각 행을 추출해서 쌓는 표현이라고 보시면됩니다.

 

 

보시면 B의 1행이 A의 3행의 값을 나타내고 있습니다.

 

'end'로 마지막 행부터 쌓아 행의 위치를 바꿔봤습니다!

 

-  행렬 결합

 

마지막으로 두 행렬의 조합으로 새로운 행렬을 만들어보겠습니다!

 

A = [1,2 ; 3,4];   // 2X2 행렬 생성 

 

b = [5, 6];    // 1x2 행렬 생성

 

위 두행렬로 새로운 행렬 B를 만들어봅시다.

 

B = [A, b']     // b행렬 Tranpose 하여 열방향으로 A행렬에 추가

 

B1 = [A;b]     // b행렬 행방향으로 A행렬에 추가

 

행렬 결합

 

B = [A, b'] 는 , 를 이용해 열을 추가 했으므로

 

B = [1, 2 , 5 ; 3, 4, 6] 또는 B = [A , [5;6]]  과 같은 표현입니다 

 

 

B1 = [A;b] 는 ; 를 이용해 행을 추가 했으므로

 

B1 = [1, 2 ; 3, 4 ; 5, 6] 과 같은 표현입니다.

 

매트랩 행렬에서 두괄호를 기억하시면 도움이 되실겁니다!!

 

[ ]: 행렬 생성!

 

( ): 행, 열 인덱스 접근!

 

오늘은 여기서 마무리하겠습니다!

 

읽어주셔서 감사합니다~

 

 

 

반응형