2) Tech

4. (Matlab) 알아두면 유용한 매트랩, 인덱스(indexing)

Technical_Supporter 2020. 3. 8. 21:28
반응형

안녕하세요!

 

오늘은 매트랩 벡터의 Indexing(인덱싱)에 대해 이야기해보겠습니다.

 

인덱싱이란 여러 데이터중 특정데이터에 접근하는것을 의미합니다!

 

즉, [0, 1, 2, 3, 4, 5]와 같은 행벡터가 있을 때

 

0번째, 4번째 데이터에 접근 하려할때 indexing을 사용하게됩니다.

 

매트랩에서 인덱싱의 방법은 크게 3가지가 있습니다.

 

1. Linear Indexing : 인덱스

 

2. Row-Column Indexing : 행 인덱스, 열 인덱스

 

3. Logical Indexing : 조건

 

 

1. Linear Indexing

 

매트랩 인덱싱을 예를 통해 알아보겠습니다.

 

그럼 명령창으로 갑시다!


clear; clc; 
x = [5, 4, 10, 2]; 

 

위와 같이 x를 선언했을 때,

x의 [5, 4, 10, 2] 각 요소마다 번호(인덱스)가 부여됩니다.

앞에서 부터 1 2 3 ... 순으로 매겨집니다.

 

주의!!

c 배열의 인덱스와 다르게 첫번째 요소의 인덱스가 1로 부여됩니다!!!

 

* 인덱스 추출 *

y = x(2) + x(3);    ->    x의 2, 3 인덱스에 해당하는 값을 추출해 더하는 의미

 

/*

x(2) = 4, x(3) = 10

y = 14 가 되겠네요!

*/

 

* 인덱스 값 변경 *

x(3) = 11;      ->    x(3) : 10 -> 11로 변경, x = [5, 4, 11, 2]

 

인덱스 추출 및 변경

 

+ 응용

 

x = [5, 4, 11, 2] 일때

 

x([인덱스, 인덱스, 인덱스]) 와 같이 적어주면, 추출된 각 인덱스로 새로운 벡터가 형성됩니다. 

 

y = x([4,3,2,1]);    ->    y = [x(4), x(3), x(2), x(1)] 즉,  y = [2, 11, 4, 5]  

 

y = x( [1,1,1]);     ->    y = [x(1), x(1), x(1)] 즉, y = [5, 5, 5]

y = x(end:-1:1);    ->    x(end), x 맨끝 인덱스에 접근!  y = [2, 11, 4, 5] 

 

y = x(end -2);      ->    y = 5      

 

x([1,2]) = 0;        ->      x = [0, 0, 11, 2]

 

x([1,2]) = [3,7];      ->     x = [3, 7, 11, 2]

 

인덱스 접근 응용

 

 

* 인덱스 추가 *

 

x [3, 7, 11, 2] 의 인덱스를 추가하려면,

 

x(end + 1) = 7;     ->   end 자리에 +1 한 인덱스에 값을 할당. 즉, x(5)에 7할당 x = [3,7,11,2,7]

 

x(end + 3) = 5;      ->  x(8)에 5할당 x = [3,7,11,2,7,0,0,5]

 

x(end) = [];    ->  x(end) 값 [] = 제거

 

인덱스 추가

 

오늘은 Linear Indexing을 알아봤습니다!

오늘도 별건아니지만 도움이 되셨으면 좋겠네요!!

 

다음에는 행렬의 인덱싱과 연산에대해 알아보겠습니다~~

 

반응형