문자열 셀 배열

문자열 셀 배열 (Cell Arrays of Strings)

셀 배열의 흔한 용도 중 하나가 여러 문자열을 같은 변수에 저장하는 거예요. 각 행을 문자열 하나로 하는 문자 행렬에도 여러 문자열을 저장할 수 있지만, 그러면 모든 문자열의 길이가 같아야 한다는 문제가 생기지요. 그래서 여러 문자열을 저장할 때는 셀 배열을 쓰는 것이 권장됩니다.

출처: Cell Arrays of Strings

본문

특정 연산에서 문자 행렬 표현이 필요할 때는 문자열 셀 배열과 문자 배열을 서로 바꿔 주는 함수들이 있어요. charstrvcat은 셀 배열을 문자 배열로 바꾸고(Concatenating Strings 참고), cellstr은 문자 배열을 문자열 셀 배열로 바꿉니다.

a = ["hello"; "world"];
c = cellstr (a)
     ⇒  c =
         {
           [1,1] = hello
           [2,1] = world
         }
  • cstr = cellstr (strmat) — 문자열 배열 strmat의 요소들로 새 셀 배열 객체를 만듭니다.

strmat의 각 행은 cstr의 한 요소가 돼요. 변환 전에 행의 끝에 있는 공백은 삭제됩니다. 다시 문자 배열로 돌아가려면 char를 쓰면 돼요.

참고: cell, char.

문자열 셀 배열을 쓰는 또 다른 장점은, Octave에 포함된 대부분의 문자열 조작 함수가 이 표현을 지원한다는 점이에요. 예를 들어 strcmp 함수로 하나의 문자열을 여러 문자열과 비교할 수 있습니다. 함수 인자 중 하나가 문자열이고 다른 하나가 문자열 셀 배열이면, 셀 배열의 각 요소가 문자열 인자와 비교됩니다.

c = {"hello", "world"};
strcmp ("hello", c)
     ⇒  ans =
        1   0

문자열 셀 배열을 지원하는 문자열 함수들: char, strvcat, strcat(Concatenating Strings 참고), strcmp, strncmp, strcmpi, strncmpi(Searching in Strings 참고), str2double, deblank, strtrim, strtrunc, strfind, strmatch, regexp, regexpi(String Operations 참고), 그리고 str2double(Converting Strings 참고)가 있어요.

어떤 객체가 문자열 셀 배열인지 검사할 때는 iscellstr 함수를 씁니다.

  • tf = iscellstr (cell) — 셀 배열 cell의 모든 요소가 문자 문자열이면 true를 돌려줍니다.

참고: ischar, isstring.

더 알아보기