셀형 배열의 데이터에 액세스하기
이 예제에서는 셀형 배열에서 데이터를 읽고 쓰는 방법을 보여줍니다.
텍스트 데이터와 숫자형 데이터로 구성된 2×3 셀형 배열을 생성합니다.
C = {'one', 'two', 'three'; 1, 2, 3}
C=2×3 cell array
{'one'} {'two'} {'three'}
{[ 1]} {[ 2]} {[ 3]}
셀형 배열의 요소를 참조하는 방법으로는 두 가지가 있습니다. 셀 집합을 참조하려면(예를 들어, 배열의 서브셋을 정의하려는 경우) 인덱스를 괄호 ()
로 묶으십시오. 개별 셀 내의 텍스트, 숫자 또는 기타 데이터를 참조하려면 인덱스를 중괄호 {}
로 묶으십시오.
괄호 ()를 사용하여 셀 인덱싱하기
괄호로 묶인 셀형 배열 인덱스는 셀 집합을 참조합니다. 예를 들어, C
의 서브셋인 2×2 셀형 배열을 만들려면 괄호를 사용하십시오.
upperLeft = C(1:2,1:2)
upperLeft=2×2 cell array
{'one'} {'two'}
{[ 1]} {[ 2]}
셀 집합을 동일한 개수의 셀로 대체하여 셀 집합을 업데이트합니다. 예를 들어, C
의 첫 번째 행에 포함된 셀을 동일한 크기(1×3)의 셀형 배열로 바꿉니다.
C(1,1:3) = {'first','second','third'}
C=2×3 cell array
{'first'} {'second'} {'third'}
{[ 1]} {[ 2]} {[ 3]}
배열의 셀이 숫자형 데이터를 포함하는 경우 cell2mat
함수를 사용하여 셀을 숫자형 배열로 변환할 수 있습니다.
numericCells = C(2,1:3)
numericCells=1×3 cell array
{[1]} {[2]} {[3]}
numericVector = cell2mat(numericCells)
numericVector = 1×3
1 2 3
numericCells
는 1×3 셀형 배열이지만, numericVector
는 double
형의 1×3 배열입니다.
중괄호 {}를 사용하여 내용 인덱싱하기
셀의 내용(셀 내의 숫자, 텍스트 또는 기타 데이터)에 액세스하려면 중괄호를 사용하여 인덱싱하십시오. 예를 들어, C
의 마지막 셀 내용에 액세스하려면 중괄호를 사용하십시오.
last = C{2,3}
last = 3
셀이 double
형 값을 포함하므로 last
는 double
형의 숫자형 변수입니다.
마찬가지로, 중괄호를 사용해 인덱싱하여 셀의 내용을 바꿀 수 있습니다.
C{2,3} = 300
C=2×3 cell array
{'first'} {'second'} {'third'}
{[ 1]} {[ 2]} {[ 300]}
중괄호를 사용하여 인덱싱함으로써 여러 셀의 내용에 액세스할 수 있습니다. MATLAB®은 셀의 내용을 쉼표로 구분된 목록으로 반환합니다. 각 셀이 서로 다른 데이터형을 포함할 수 있으므로 이 목록은 단일 변수에 할당할 수 없습니다. 그러나, 이 목록을 셀과 동일한 개수의 변수에 할당할 수 있습니다. MATLAB®은 열 순서대로 변수에 할당합니다.
C
의 4개 셀의 내용을 4개 변수에 할당합니다.
[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 'first'
r2c1 = 1
r1c2 = 'second'
r2c2 = 2
각 셀이 동일한 데이터형을 포함하는 경우 배열 결합 연산자 []
를 쉼표로 구분된 목록에 적용하여 단일 변수를 생성할 수 있습니다.
두 번째 행의 내용을 숫자형 배열로 결합합니다.
nums = [C{2,:}]
nums = 1×3
1 2 300