Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

sub2ind

첨자를 선형 인덱스로 변환

설명

예제

ind = sub2ind(sz,row,col)row, col에 지정된 행과 열 첨자에 대응하는 선형 인덱스 ind를 크기가 sz인 행렬에 대해 반환합니다. 여기서 sz는 요소를 2개 가진 벡터로, sz(1)은 행 개수를 지정하고 sz(2)는 열 개수를 지정합니다.

예제

ind = sub2ind(sz,I1,I2,...,In)n개의 배열 I1,I2,...,In에 지정된 다차원 첨자에 대응하는 선형 인덱스 ind를 크기가 sz인 다차원 배열에 대해 반환합니다. 여기서 sz는 각 배열의 차원 크기를 지정하는 n개의 요소로 이루어진 벡터입니다.

예제

모두 축소

첨자(위치 기준 인덱싱)에서 3x3 행렬에 대한 선형 인덱스로의 매핑은 다음과 같이 나타낼 수 있습니다.

3x3 행렬의 행 첨자와 열 첨자를 지정합니다. 첨자를 선형 인덱스로 변환합니다.

row = [1 2 3 1];
col = [2 2 2 3];
sz = [3 3];
ind = sub2ind(sz,row,col)
ind = 1×4

     4     5     6     7

2x2x2 배열의 첨자를 선형 인덱스로 매핑하면 다음과 같습니다.

2x2x2 배열의 행 첨자, 열 첨자, 페이지 첨자를 지정합니다. 첨자를 선형 인덱스로 변환합니다.

I1 = [1 2 1 2];
I2 = [2 2 1 1];
I3 = [1 1 2 2];
sz = [2 2 2];
ind = sub2ind(sz,I1,I2,I3)
ind = 1×4

     3     4     5     6

3차원 배열의 첨자 인덱스를 하나의 선형 인덱스로 변환합니다.

배열을 만들고 (2,1,2) 위치의 요소에 대응하는 선형 인덱스를 찾습니다.

A = rand(3,4,2);
linearInd = sub2ind(size(A),2,1,2)
linearInd = 14

두 인덱스 형태가 모두 동일한 요소를 나타내는지 확인합니다.

A(2,1,2)
ans = 0.4854
A(14)
ans = 0.4854

입력 인수

모두 축소

배열의 크기로, 양의 정수로 구성된 벡터로 지정됩니다. 이 벡터의 요소는 각각 대응하는 차원의 크기를 나타냅니다. 예를 들어, [2 3 4]는 2x3x4 배열을 정의합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

행 첨자로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. row의 크기는 col의 크기와 같아야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

열 첨자로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. col의 크기는 row의 크기와 같아야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

다차원 첨자로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. 각 배열 I1,I2,…,In은 크기가 같아야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

선형 인덱스로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다. ind의 크기는 입력값 row, col 또는 I1,I2,…,In의 크기와 같습니다.

데이터형: double

알고리즘

배열 A의 경우, ind = sub2ind(size(A),I1,…,In)이면 모든 k에 대해 A(ind(k)) = A(I1(k),…,In(k))입니다.

확장 기능

참고 항목

| |

R2006a 이전에 개발됨