다음: 낱칸 배열 색인, 이전: 낱칸 배열의 기본 용법, 상위 문서: 낱칸 배열 [차례][찾아보기]
앞에 있는 예시(낱칸 배열의 기본 용법 참조)는 유효한 변수를 담은채 낱칸 배열을 만드는 방법을 보여줍니다. 그러나, 많은 경우에 낱칸 배열을 먼저 만들고 나중에 값을 채우는 것이 유용합니다.
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.
다음: 낱칸 배열 색인, 이전: 낱칸 배열의 기본 용법, 상위 문서: 낱칸 배열 [차례][찾아보기]