다음: 낱칸 배열 색인, 이전: 낱칸 배열의 기본 용법, 상위 문서: 낱칸 배열 [차례][찾아보기]
앞에 있는 예시(낱칸 배열의 기본 용법 참조)는 유효한 변수를 담은채 낱칸 배열을 만드는 방법을 보여줍니다. 그러나, 많은 경우에 낱칸 배열을 먼저 만들고 나중에 값을 채우는 것이 유용합니다.
cell 함수는 지정한 크기이면서 빈 행렬을 담은 낱칸 배열을 반환합니다. 이 함수는 새 수치 배열을 만드는다는
점에서 zeros
함수와 비슷합니다. 아래 예시는 빈 행렬을 담은 2×2짜리 낱칸 배열을 만듭니다.
c = cell (2,2)
⇒ c =
{
[1,1] = [](0x0)
[2,1] = [](0x0)
[1,2] = [](0x0)
[2,2] = [](0x0)
}
수치 배열처럼, 낱칸 배열도 다차원이 가능합니다.
cell 함수는 반환할 낱칸 배열의 크기를 지정하는 수로 모든 양의 정수를 받습니다. 벡터인 양의 정수로 낱칸 배열
크기를 지정하여도 됩니다. 아래 예시는 같은 크기인 두 낱칸 배열을 만들고, 첫 번째 낱칸 배열의 크기를 보여줍니다.
c1 = cell (3, 4, 5);
c2 = cell ( [3, 4, 5] );
size (c1)
⇒ ans =
3 4 5
보다시피 size 함수도 낱칸 배열에서 작동합니다. 객체의 크기를 기술하는 length, numel, rows, columns 같은 함수도 작동합니다.
새 낱칸 배열 객체를 만듭니다.
스칼라 정수 매개변수 한 개만 지정하면, NxN짜리 정사각형 낱칸 배열을 반환합니다. 스칼라 정수 매개변수 두 개 이상 또는 정수 값 벡터를 지정하면 주어진 크기의 낱칸 배열을 반환합니다.
같이 보기: cellstr, mat2cell, num2cell, struct2cell.
빈 낱칸 배열을 만들고 채우는 다른 방법으로
num2cell, mat2cell, cellslices 함수로 수치
배열을 낱칸 배열을 바꾸는 것이 있습니다.
수치 행렬 A를 낱칸 배열로 바꿉니다.
차원을 지정하지 않으면, A의 각 원소는 출력된 낱칸 배열 C에서 1x1짜리 원소가 됩니다.
차원을 지정하면, C의 개별 원소에 지정한 차원에 맞추어 A의 모든 원소를 넣습니다. 차원에 같은 방식대로 작동하는 벡터를 지정하여도 됩니다.
예시:
x = [1,2;3,4]
⇒
1 2
3 4
## each element of A becomes a 1x1 element of C
num2cell (x)
⇒
{
[1,1] = 1
[2,1] = 3
[1,2] = 2
[2,2] = 4
}
## all rows (dim 1) of A appear in each element of C
num2cell (x, 1)
⇒
{
[1,1] =
1
3
[1,2] =
2
4
}
## all columns (dim 2) of A appear in each element of C
num2cell (x, 2)
⇒
{
[1,1] =
1 2
[2,1] =
3 4
}
## all rows and cols appear in each element of C
## (hence, only 1 output)
num2cell (x, [1, 2])
⇒
{
[1,1] =
1 2
3 4
}
같이 보기: mat2cell.
행렬 A를 낱칸 배열로 바꿉니다.
각 차원 매개변수(차원1, 차원2 등)은 새 출력 C의 원소에 차원의 원소를 나누어 넣는 방법을 정하는
정수 벡터입니다. i번째 차원의 언소 개수는 size (A, i)입니다. A
내 모든 원소는 sum (dimi) == size
(A, i)에 따라 나누어져야 하기 때문입니다. 출력 낱칸 C의 크기는 (dim1) x
numel (dim2) x … x numel (dimn)입니다.
차원 매개변수를 행_차원 한 개만 주면, 지정한 대로 행을 쪼개 출력합니다. 열(차원2), 면(차원3) 등의 그외 차원은 쪼개지 않아 출력한 원소에 나타납니다.
예시:
x = reshape (1:12, [3, 4])'
⇒
1 2 3
4 5 6
7 8 9
10 11 12
## The 4 rows (dim1) are divided in to two cell elements
## with 2 rows each.
## The 3 cols (dim2) are divided in to three cell elements
## with 1 col each.
mat2cell (x, [2,2], [1,1,1])
⇒
{
[1,1] =
1
4
[2,1] =
7
10
[1,2] =
2
5
[2,2] =
8
11
[1,3] =
3
6
[2,3] =
9
12
}
## The 4 rows (dim1) are divided in to two cell elements
## with a 3/1 split.
## All columns appear in each output element.
mat2cell (x, [3,1])
⇒
{
[1,1] =
1 2 3
4 5 6
7 8 9
[2,1] =
10 11 12
}
배열 가로를 지정하면, 하계와 상계를 정하는 색인 벡터 하, 상로 배열을 잘라 낱칸 배열로 만듭니다.
즉, 아래 부호와 같은 역할을 합니다.
n = length (lb);
sl = cell (1, n);
for i = 1:length (lb)
sl{i} = x(:,…,lb(i):ub(i),…,:);
endfor
색인 위치는 차원으로 정합니다. 지정하지 않으면, 첫 비단일 차원을 따라 자릅니다.
같이 보기: cell2mat, cellindexmat, cellfun.
다음: 낱칸 배열 색인, 이전: 낱칸 배열의 기본 용법, 상위 문서: 낱칸 배열 [차례][찾아보기]