octave: Cell Arrays of Strings

 
 6.2.4 Cell Arrays of Strings
 ----------------------------
 
 One common use of cell arrays is to store multiple strings in the same
 variable.  It is also possible to store multiple strings in a character
 matrix by letting each row be a string.  This, however, introduces the
 problem that all strings must be of equal length.  Therefore, it is
 recommended to use cell arrays to store multiple strings.  For cases,
 where the character matrix representation is required for an operation,
 there are several functions that convert a cell array of strings to a
 character array and back.  ‘char’ and ‘strvcat’ convert cell arrays to a
 character array (SeeConcatenating Strings), while the function
 ‘cellstr’ converts a character array to a cell array of strings:
 
      a = ["hello"; "world"];
      c = cellstr (a)
           ⇒ c =
               {
                 [1,1] = hello
                 [2,1] = world
               }
 
  -- : CSTR = cellstr (STRMAT)
      Create a new cell array object from the elements of the string
      array STRMAT.
 
      Each row of STRMAT becomes an element of CSTR.  Any trailing spaces
      in a row are deleted before conversion.
 
      To convert back from a cellstr to a character array use ‘char’.
 
      See also: Seecell XREFcell, Seechar XREFchar.
 
    One further advantage of using cell arrays to store multiple strings
 is that most functions for string manipulations included with Octave
 support this representation.  As an example, it is possible to compare
 one string with many others using the ‘strcmp’ function.  If one of the
 arguments to this function is a string and the other is a cell array of
 strings, each element of the cell array will be compared to the string
 argument:
 
      c = {"hello", "world"};
      strcmp ("hello", c)
           ⇒ ans =
              1   0
 
 The following string functions support cell arrays of strings: ‘char’,
 ‘strvcat’, ‘strcat’ (SeeConcatenating Strings), ‘strcmp’,
 ‘strncmp’, ‘strcmpi’, ‘strncmpi’ (SeeComparing Strings),
 ‘str2double’, ‘deblank’, ‘strtrim’, ‘strtrunc’, ‘strfind’, ‘strmatch’, ,
 ‘regexp’, ‘regexpi’ (SeeManipulating Strings) and ‘str2double’
 (SeeString Conversions).
 
    The function ‘iscellstr’ can be used to test if an object is a cell
 array of strings.
 
  -- : iscellstr (CELL)
      Return true if every element of the cell array CELL is a character
      string.
 
      See also: Seeischar XREFischar.