셀 배열 데이터 처리
셀 배열 데이터 처리 (Processing Data in Cell Arrays)
셀 배열에 담긴 데이터를 처리하는 방법은 실제 데이터에 따라 여러 가지예요. 가장 단순한 방법은 for 루프를 하나 이상 써서 데이터를 하나씩 훑는 거예요. 같은 아이디어를 더 쉽게 구현하고 싶다면 cellfun 함수를 쓰면 돼요. 이 함수는 셀 배열의 모든 요소에 사용자가 지정한 함수를 호출해 줘요(cellfun 참고).
출처: 문서
본문
또 다른 방법은 데이터를 행렬이나 구조체 같은 다른 컨테이너로 바꾸는 거예요. 데이터에 따라서는 cell2mat과 cell2struct 함수로 이게 가능해요.
m = cell2mat (c)
셀 배열 c를 초직사각형(hyperrectangle)으로 이어 붙여 행렬로 변환해요. c의 요소는 숫자, 논리, char 행렬이거나 셀 배열, 구조체여야 하고, cat으로 이들을 이어 붙일 수 있어야 해요.
S = cell2struct (cell, fields)
S = cell2struct (cell, fields, dim)
cell을 구조체로 변환해요. fields의 필드 수는 차원 dim을 따라 cell의 요소 수와 같아야 해요. 즉 numel (fields) == size (cell, dim)이어야 하죠. dim을 생략하면 1로 간주돼요.
S = cell2struct ({"Peter", "Hannah", "Robert";
185, 170, 168},
{"Name","Height"}, 1);
S(1)
⇒
{
Name = Peter
Height = 185
}
더 알아보기
- 셀 배열의 각 요소에 함수를 적용하려면
cellfun을 참고하세요. - 구조체를 다시 셀 배열이나 행렬로 바꿀 때는
struct2cell항목도 함께 보면 좋아요.