공학/matlab

matlab 정리 - 2.배열인덱싱

뤠이튼 2021. 3. 15. 23:29

※이 글은 매틀랩 도움말센터 MATLAB Documentation - MathWorks 한국을 가지고 따라 하며 만든 자료입니다

 

이번에는 배열 인덱싱입니다

저번 포스팅에서 matlab은 모든 변수는 데이터의 형과 관계없이 다차원 배열이라 말씀드렸습니다 이렇게 생성된 배열 내 특정 요소에 접근하는 걸 배열 인덱싱이라 합니다

 

원래는 논리 접근, 선형 접근, 위치 요소 접근 3가지 방법이 있습니다만 이번 도움말에서는 위치 요소와 선형 요소에 대한 접근만 다룹니다. 그럼 마방진 함수를 통해 배열을 만들고 특정 요소에 접근해보겠습니다.

 

위치 요소를 이용한 배열 인덱싱

마방진은 행과 열의 합계가 동일하고 1~N^2 범위의 정수로 생성된 NxN행렬을 말합니다  정상적인 마방진을 만들려면 들어가는 인수는 3보다 크거나 같아야 합니다 

magic(N)

 

배열 내 특정 요소를 참조하는 방법은 2가지가 있습니다 

  • 행 첨자와 열 첨자를 지정해서 접근하는 방법(위치 요소 인덱싱)
a=magic(4)
a(4,2)

 

 

a(4.2)를 통해 4행 2열에 올바르게 접근한 걸 볼 수 있습니다.

 

  • 단일 첨자를 이용하여 열을 순서대로 아래쪽을 향하여 세어 나가는 법이 있습니다(선형 인덱싱)
a=magic(4)
a(8)

화살표 방향으로 진행하며 세어서  접근합니다  이러한 단일 첨자를 사용하여 특정 요소를 참조하는 것을 선형 인덱싱(Linear Indexing)이라 합니다 

 

 

 

배열 요소 삽입

 

대입문 우변에서 배열 범위를 벗어난 요소를 참조하려고 하면 matlab에서 오류가 발생합니다

a=magic(4)
test=a(4,5)

하지만 반대로 대입문 좌변에서 현재 범위를 벗어난 요소를 지정할 수 있습니다 그러면 배열은 알아서 크기를 늘립니다

a=magic(4)
a(4,5)=17

 

 

배열 여러 요소를 참조하기

 

배열의 요소를 여러 개 참조하려면 콜론 연산자를 이용하여 접근할 수 있습니다 start:end 형식으로 범위를 지정할 수 있습니다

 

 

a의 2번째 열에 위치한 처음 3행의 요소를 가져와보겠습니다

a=magic(4)
a(1:3,2)

요렇게 이해하도록합시다

 

start:end 구조에서 양쪽 값을 지정하지 않고 콜론만 사용하면 해당 차원의 모든 요소를 지정할 수 있습니다 예를 들어 a배열의 3번째 행에 있는 모든 열을 가져와보겠습니다

 

a=magic(4)
a(3,:)

 

 

또한 콜론 연산자를 이용하면 start:step:end 구조의 step간격의 값으로 구성된 배열을 만들 수 있습니다

a=0:10:100

만약 step 부분을 생략하면 기본값은 1로 지정됩니다

'공학 > matlab' 카테고리의 다른 글

matlab정리 - 5.함수호출  (0) 2021.03.19
matlab 정리 - 4. 텍스트와 문자  (0) 2021.03.19
matlab 정리 - 3.작업 공간 변수  (0) 2021.03.16
matlab 정리-1.행렬과 배열  (0) 2021.03.14
Matlab 정리 0 - matlab이란?  (0) 2021.03.12