6.3.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 (see Concatenating 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
.
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
(see Concatenating Strings), strcmp
, strncmp
, strcmpi
, strncmpi
(see Comparing Strings), str2double
, deblank
, strtrim
, strtrunc
, strfind
, strmatch
, , regexp
, regexpi
(see Manipulating Strings) and str2double
(see String 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.
© 1996–2020 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/v6.3.0/Cell-Arrays-of-Strings.html