STRING  STRING Convert Array to String


Usage
 
 Converts the argument array into a string.  The syntax for its
 use is
 
    y = string(x)
 
 where x is an n-dimensional numerical array.
 STRING  STRING String Arrays


Usage
 
 FreeMat supports a string array type that operates very
 much as you would expect.  Strings are stored internally as
 8-bit values, and are otherwise similar to numerical arrays in
 all respects.  In some respects, this makes strings arrays
 less useful than one might imagine.  For example, numerical
 arrays in 2-D are rectangular.  Thus, each row in the array
 must have the same number of columns.  This requirement is
 natural for numerical arrays and matrices, but consider a
 string array.  If one wants to store multiple strings in
 a single data structure, they must all be the
 same length (unlikely).  The alternative is to use a cell
 array of strings, in which case, each string can be of
 arbitrary length.  Most of the functions that support 
 strings in a set-theoretic way, like unique and sort
 operate on cell-arrays of strings instead of string arrays.
 Just to make the example concrete, here is the old way of
 storing several strings in an array:
 
 --> % This is an error
 --> A = ['hello';'bye']
 Error: Mismatch in dimension for rows in matrix definition
 --> % This is OK, but awkward
 --> A = ['hello';'bye  ']
 A = 
   <string>  - size: [2 5]
  hello
  bye  
 --> % This is the right way to do it
 --> A = {'hello','bye'}
 A = 
   <cell array> - size: [1 2]
  
 Columns 1 to 2
  hello    bye    
 
 
 One important (tricky) point in FreeMat is the treatment
 of escape sequences.  Recall that in C programming, an
 escape sequence is a special character that causes the output
 to do something unusual.  FreeMat supports the following
 escape sequences:
   -  \t - causes a tab to be output
   -  \r - causes a carriage return (return to the beginning     of the line of output, and overwrite the text)
   -  \n - causes a linefeed (advance to next line)
 FreeMat follows the Unix/Linux convention, that a \n
 causes both a carriage return and a linefeed.  
 To put a single quote into a string use the MATLAB convention
 of two single quotes, not the \' sequence.  Here is an
 example of a string containing some escape sequences:
 
 --> a = 'I can''t use contractions\n\tOr can I?\n'
 a = 
   <string>  - size: [1 39]
  I can't use contractions\n\tOr can I?\n
 
 Now, note that the string itself still contains the \n
 characters.  With the exception of the \', the escape 
 sequences do not affect the output unless the strings are 
 put through printf or fprintf.  For example, if we 
 printf the variable a, we see the \n and \t 
 take effect:
 
 --> printf(a);
 I can't use contractions
 	Or can I?
 
 The final complicating factor is on MSWin systems.  There,
 filenames regularly contain \ characters.  Thus, if you
 try to print a string containing the filename 
 C:\redball\timewarp\newton.txt, the output will be mangled
 because FreeMat thinks the \r, \t and \n are escape
 sequences.  You have two options.  You can use disp to show
 the filename (disp does not do escape translation to be 
 compatible with MATLAB).  The second option is to escape the
 backslashes in the string, so that the string you send to 
 printf contains C:\\redball\\timewarp\\newton.txt.
 
 --> % disp displays it ok
 --> a = 'C:\redball\timewarp\newton.txt'
 a = 
   <string>  - size: [1 30]
  C:\redball\timewarp\newton.txt
 --> % printf makes a mess
 --> printf(a)
 C:
edball	imewarp
 ewton.txt--> % If we double up the slashes it works fine
 --> a = 'C:\\redball\\timewarp\\newton.txt'
 a = 
   <string>  - size: [1 33]
  C:\\redball\\timewarp\\newton.txt
 --> printf(a)
 C:\redball\timewarp\newton.txt
 