Code Generation for Strings
Code generation supports 1-by-1 MATLAB® string arrays. Code generation does not support string arrays that have more than one element.
A 1-by-1 string array, called a string scalar, contains one
piece of text, represented as a 1-by-n character vector. An example of a string scalar
is "Hello, world"
. For more information about strings, see Text in String and Character Arrays.
Limitations
For string scalars, code generation does not support:
Global variables
Indexing with curly braces
{}
Missing values
Defining input types programmatically (by using preconditioning with
assert
statements)Their use with
coder.varsize
For code generation, limitations that apply to classes apply to strings. See MATLAB Classes Definition for Code Generation.
Differences Between Generated Code and MATLAB Code
Converting a string that contains multiple unary operators to
double
can produce different results between MATLAB and the generated code. Consider this function:function out = foo(op) out = double(op + 1); end
For an input value
"--"
, the function converts the string"--1"
todouble
. In MATLAB, the answer isNaN
. In the generated code, the answer is1
.Double conversion for a string with misplaced commas (commas that are not used as thousands separators) can produce different results from MATLAB.