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}
입력 인수
A
— 입력값
임의 유형의 다차원 배열
입력값으로, 임의 유형의 다차원 배열로 지정됩니다.
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| struct
| cell
| categorical
| datetime
| duration
| calendarDuration
| function_handle
출력 인수
C
— 결과 배열
셀형 배열
결과 배열로, 셀형 배열로 반환됩니다. C
크기는 A
크기와 dim
값에 따라 다릅니다.
dim
을 지정하지 않으면C
는A
와 크기가 같습니다.dim
이 스칼라인 경우에는C
에numel(A)/size(A,dim)
개 셀이 들어 있습니다.dim
이 1 또는 2인 경우에는 각 셀에 열 벡터나 행 벡터가 하나 들어 있습니다.dim
이 2보다 큰 경우에는dim
번째 차원 길이는size(A,dim)
이고 나머지 차원은 모두 한원소(Singleton)인 배열이 각 셀에 하나 들어 있습니다.예를 들어, 이 그림에서는 4×7×3 배열인
A
에서num2cell
이dim
값1
,2
,3
에 해당하는 셀을 만드는 방법을 보여줍니다.dim
이N
값을 포함하는 벡터이면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/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시
dim
입력값은 지원되지 않습니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)