Main Content

num2cell

배열을 일관된 크기의 셀로 구성된 셀형 배열로 변환

설명

예제

C = num2cell(A)A의 각 요소를 C의 개별 셀에 배치하여 배열 A를 셀형 배열 C로 변환합니다.

num2cell 함수는 임의의 데이터형(숫자형이 아닌 데이터형 포함)을 갖는 배열을 변환합니다.

예제

C = num2cell(A,dim)A의 내용을 C의 개별 셀로 분할합니다. 여기서 dim은 각 셀에 포함할 A의 차원을 지정합니다. dim은 차원의 벡터이거나 스칼라일 수 있습니다. 예를 들어 A에 행 2개와 열 3개가 있다면 다음과 같습니다.

  • num2cell(A,1)은 1×3의 셀형 배열 C를 만듭니다. 이때 각 셀에는 A의 2×1 열이 들어 있습니다.

  • num2cell(A,2)는 2×1의 셀형 배열 C를 만듭니다. 이때 각 셀에는 A의 1×3 열이 들어 있습니다.

  • num2cell(A,[1 2])는 1×1의 셀형 배열 C를 만듭니다. 이때 셀에는 전체 배열 A가 들어 있습니다.

예제

모두 축소

숫자형 배열의 모든 요소를 개별 셀에 배치합니다.

a = magic(3)
a = 3×3

     8     1     6
     3     5     7
     4     9     2

c = num2cell(a)
c=3×3 cell array
    {[8]}    {[1]}    {[6]}
    {[3]}    {[5]}    {[7]}
    {[4]}    {[9]}    {[2]}

단어의 각 문자를 배열의 개별 셀에 배치합니다.

a = ['four';'five';'nine']
a = 3x4 char array
    'four'
    'five'
    'nine'

c = num2cell(a)
c = 3x4 cell
    {'f'}    {'o'}    {'u'}    {'r'}
    {'f'}    {'i'}    {'v'}    {'e'}
    {'n'}    {'i'}    {'n'}    {'e'}

4×3×2의 숫자형 배열을 생성한 다음, 4×1 열 벡터들로 구성된 1×3×2 셀형 배열을 만듭니다.

A = reshape(1:12,4,3);
A(:,:,2) = A*10
A = 
A(:,:,1) =

     1     5     9
     2     6    10
     3     7    11
     4     8    12


A(:,:,2) =

    10    50    90
    20    60   100
    30    70   110
    40    80   120

C = num2cell(A,1)
C = 1x3x2 cell array
C(:,:,1) = 

    {4x1 double}    {4x1 double}    {4x1 double}


C(:,:,2) = 

    {4x1 double}    {4x1 double}    {4x1 double}

각 4×1 벡터에는 A첫 번째 차원에 있는 요소가 들어 있습니다.

C{1}
ans = 4×1

     1
     2
     3
     4

1×3 숫자형 배열로 구성된 4×1×2 셀형 배열을 만듭니다.

C = num2cell(A,2)
C = 4x1x2 cell array
C(:,:,1) = 

    {[ 1 5 9]}
    {[2 6 10]}
    {[3 7 11]}
    {[4 8 12]}


C(:,:,2) = 

    {[ 10 50 90]}
    {[20 60 100]}
    {[30 70 110]}
    {[40 80 120]}

각 1×3 열 벡터에는 A두 번째 차원에 있는 요소가 들어 있습니다.

C{1}
ans = 1×3

     1     5     9

마지막으로, 1×1×2 숫자형 배열로 구성된 4×3 셀형 배열을 만듭니다.

C = num2cell(A,3)
C=4×3 cell array
    {1x1x2 double}    {1x1x2 double}    {1x1x2 double}
    {1x1x2 double}    {1x1x2 double}    {1x1x2 double}
    {1x1x2 double}    {1x1x2 double}    {1x1x2 double}
    {1x1x2 double}    {1x1x2 double}    {1x1x2 double}

각 1×1×2 벡터에는 A세 번째 차원에 있는 요소가 들어 있습니다.

C{1}
ans = 
ans(:,:,1) =

     1


ans(:,:,2) =

    10

여러 차원에 있는 요소를 숫자형 배열로 결합하여 셀형 배열로 만듭니다.

A = reshape(1:12,4,3);
A(:,:,2) = A*10
A = 
A(:,:,1) =

     1     5     9
     2     6    10
     3     7    11
     4     8    12


A(:,:,2) =

    10    50    90
    20    60   100
    30    70   110
    40    80   120

c = num2cell(A,[1 3])
c=1×3 cell array
    {4x1x2 double}    {4x1x2 double}    {4x1x2 double}

각 4×1×2 배열에는 A의 첫 번째 차원과 세 번째 차원에 있는 요소가 들어 있습니다.

c{1}
ans = 
ans(:,:,1) =

     1
     2
     3
     4


ans(:,:,2) =

    10
    20
    30
    40

c = num2cell(A,[2 3])
c=4×1 cell array
    {1x3x2 double}
    {1x3x2 double}
    {1x3x2 double}
    {1x3x2 double}

입력 인수

모두 축소

입력값으로, 임의 유형의 다차원 배열로 지정됩니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | cell | categorical | datetime | duration | calendarDuration | function_handle

A의 차원으로, 양의 정수나 양의 정수 벡터로 지정됩니다. dim은 1과 ndims(A) 사이어야 합니다.

요소는 숫자순이 아니어도 됩니다. 하지만 num2cell이 지정된 차원 순서에 맞추기 위해 C의 각 셀에서 배열 차원을 치환합니다.

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

출력 인수

모두 축소

결과 배열로, 셀형 배열로 반환됩니다. C 크기는 A 크기와 dim 값에 따라 다릅니다.

  • dim을 지정하지 않으면 CA와 크기가 같습니다.

  • dim이 스칼라인 경우에는 Cnumel(A)/size(A,dim)개 셀이 들어 있습니다. dim이 1 또는 2인 경우에는 각 셀에 열 벡터나 행 벡터가 하나 들어 있습니다. dim이 2보다 큰 경우에는 dim번째 차원 길이는 size(A,dim)이고 나머지 차원은 모두 한원소(Singleton)인 배열이 각 셀에 하나 들어 있습니다.

    예를 들어, 이 그림에서는 4×7×3 배열인 A에서 num2celldim1, 2, 3에 해당하는 셀을 만드는 방법을 보여줍니다.

  • dimN 값을 포함하는 벡터이면 C에는 셀 numel(A)/prod([size(A,dim(1)),...,size(A,dim(N))])개가 있습니다. 각 셀에는 dim(i)번째 차원의 길이가 size(A,dim(i))이고 나머지 차원이 한원소(Singleton)인 배열이 들어 있습니다.

    예를 들어 4×7×3 배열에서 dim을 양의 정수 벡터로 지정하여 서로 다른 차원의 셀 배열을 만들 수 있습니다.

데이터형: cell

  • 셀형 배열 C를 다시 배열로 변환하려면 cell2mat 함수를 사용하거나 구문 cat(dim,C{:})을 사용하십시오(여기서 dim은 차원을 지정함).

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| |