셀 배열 데이터 처리

셀 배열 데이터 처리 (Processing Data in Cell Arrays)

셀 배열에 담긴 데이터를 처리하는 방법은 실제 데이터에 따라 여러 가지예요. 가장 단순한 방법은 for 루프를 하나 이상 써서 데이터를 하나씩 훑는 거예요. 같은 아이디어를 더 쉽게 구현하고 싶다면 cellfun 함수를 쓰면 돼요. 이 함수는 셀 배열의 모든 요소에 사용자가 지정한 함수를 호출해 줘요(cellfun 참고).

출처: 문서

본문

또 다른 방법은 데이터를 행렬이나 구조체 같은 다른 컨테이너로 바꾸는 거예요. 데이터에 따라서는 cell2matcell2struct 함수로 이게 가능해요.

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 항목도 함께 보면 좋아요.