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

colon, :

벡터 생성, 배열 첨자, for 루프 반복

구문

x = j:k
x = j:i:k
A(:,n)
A(m,:)
A(:)
A(j:k)

설명

콜론은 MATLAB®에서 가장 유용한 연산자 중 하나로, 벡터나 첨자 배열을 만들고 for 반복을 지정하는 데 사용할 수 있습니다.

예제

x = j:k[j,j+1,j+2,...,j+m] 요소를 가진 단위 간격의 벡터 x를 만듭니다. 여기서 m = fix(k-j)입니다. jk가 둘 다 정수인 경우에는 간단히 [j,j+1,...,k]라는 요소가 생성됩니다.

예제

x = j:i:ki를 요소 간의 증분값으로 사용하여 균일한 간격의 벡터 x를 만듭니다. 벡터 요소는 대략적으로 [j,j+i,j+2*i,...,j+m*i]와 같습니다. 여기서 m = fix((k-j)/i)입니다. 그러나, i가 정수가 아닌 경우에는 부동소수점 산술을 통해 colon이 벡터에 끝점 k를 포함할지를 결정합니다. kj+m*i정확히 같지 않을 수 있기 때문입니다. 비 스칼라 배열을 지정하면 MATLAB에서는 j:i:kj(1):i(1):k(1)로 해석합니다.

x = colon(j,k)x = colon(j,i,k)j:k 명령과 j:i:k 명령을 실행하는 또 다른 방법이지만 거의 사용되지 않습니다. 이 구문은 클래스에 대한 연산자 오버로드를 지원합니다.

예제

A(:,n), A(m,:), A(:), A(j:k)는 행렬 A의 요소를 콜론으로 참조하는 흔한 인덱싱 표현식입니다. 인덱싱 표현식에서 콜론을 첨자로 사용할 경우(예: A(:,n)) 콜론은 특정 배열 차원의 모든 첨자를 포함한다는 의미입니다. A(j:k)와 같이 콜론을 인덱싱에 사용하여 벡터를 만드는 경우도 자주 있는 일입니다. A(:,j:k)에서와 같이 일부 인덱싱 표현식에서는 두 가지 콜론 사용법을 결합하기도 합니다.

콜론을 포함하는 일반적인 인덱싱 표현식은 다음과 같습니다.

  • A(:,n)은 행렬 An번째 열입니다.

  • A(m,:)은 행렬 Am번째 행입니다.

  • A(:,:,p)는 3차원 배열 Ap번째 페이지입니다.

  • A(:)A의 모든 요소를 단일 열 벡터로 형태 변경합니다. A가 이미 열 벡터인 경우에는 아무 영향을 미치지 않습니다.

  • A(:,:)A의 모든 요소를 2차원 행렬로 형태 변경합니다. A가 이미 행렬 또는 벡터인 경우에는 아무 영향을 미치지 않습니다.

  • A(j:k)는 벡터 j:k를 사용하여 A의 요소를 참조하므로 벡터 [A(j), A(j+1), ..., A(k)]와 동일합니다.

  • A(:,j:k)는 첫 번째 차원으로부터는 모든 첨자를 포함하지만 두 번째 차원으로부터는 벡터 j:k의 요소를 참조합니다. 즉, 열 [A(:,j), A(:,j+1), ..., A(:,k)]를 가진 행렬이 반환됩니다.

예제

모두 축소

1에서 10 사이 숫자로 구성된 단위 간격 벡터를 만들어 보겠습니다. 콜론 연산자는 +1을 디폴트 증분값으로 사용합니다.

x = 1:10
x = 1×10

     1     2     3     4     5     6     7     8     9    10

지정된 값만큼 증가하거나 감소하는 벡터를 만듭니다.

요소가 0.1씩 증가하는 벡터를 만듭니다.

x = 0:0.1:1
x = 1×11

         0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000    1.0000

요소가 -2씩 감소하는 벡터를 만듭니다.

y = 10:-2:0
y = 1×6

    10     8     6     4     2     0

콜론(:)을 사용하여 행렬의 요소를 참조하는 몇 가지 방법을 검토해 보겠습니다.

3x3 행렬을 만듭니다. 첫 번째 행의 요소를 참조합니다.

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

A(1,:)
ans = 1×3

     8     1     6

두 번째 열과 세 번째 열의 요소를 참조합니다.

A(:,2:3)
ans = 3×2

     1     6
     5     7
     9     2

행렬을 열 벡터로 형태 변경합니다.

A(:)
ans = 9×1

     8
     3
     4
     1
     5
     9
     6
     7
     2

for 루프 컨텍스트에서 콜론은 루프 반복을 지정합니다.

1에서 4 사이의 숫자 값 n을 제곱하는 for 루프를 작성합니다.

for n = 1:4
    n^2
end
ans = 1
ans = 4
ans = 9
ans = 16

입력 인수

모두 축소

시작 벡터 값으로, 실수 숫자형 스칼라로 지정됩니다. j < k로 출력 벡터가 비어 있지 않은 경우 j는 벡터의 첫 번째 요소입니다.

예: x = 0:5

예: x = 0:0.5:5

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

종료 벡터 값으로, 실수 숫자형 스칼라로 지정됩니다. k는 증분값의 배수가 최종적으로 k가 될 경우에만 벡터의 마지막 값이 됩니다. 예를 들어, 벡터 0:5는 5를 마지막 값으로 포함하지만 0:0.3:1은 증분값의 배수가 끝점과 일치하지 않으므로 값 1을 마지막 값으로 포함하지 않습니다.

예: x = 0:5

예: x = 0:0.5:5

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

벡터 요소 사이의 증분값으로, 실수 숫자형 스칼라로 지정됩니다.

예: x = 0:0.5:5

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

출력 인수

모두 축소

균일한 간격의 벡터로, 행 벡터로 반환됩니다. j > k이면 x = j:k는 빈 행렬이 됩니다. 일반적으로, 다음과 같은 경우 구문 x = j:i:k는 빈 행렬을 반환합니다.

  • i, j 또는 k가 빈 입력값인 경우

  • i == 0인 경우

  • i > 0이고 j > k인 경우

  • i < 0이고 j < k인 경우

  • for 함수 도움말 페이지에는 루프 문의 컨텍스트에서 :을 사용하는 방법에 대한 설명이 나와 있습니다.

  • linspace는 콜론 연산자 :과 유사하지만 점의 개수를 직접 제어할 수 있고 끝점을 항상 포함합니다. 형제 함수 logspace는 로그 간격의 값을 생성합니다.

  • 셀형 배열이나 구조체형 배열의 요소를 참조하기 위해 cellName{:}이나 structName(:).fieldName과 같이 벡터를 만들면 MATLAB이 쉼표로 구분된 목록에 여러 출력값을 반환합니다. 자세한 내용은 쉼표로 구분된 목록을 사용하는 방법 항목을 참조하십시오.

확장 기능

R2006a 이전에 개발됨