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
statementsTheir use with
coder.varsize
, when generating code by using thecodegen
(MATLAB Coder) command, thefiaccel
command, or the MATLAB Coder™ appTheir use as Simulink® signals, parameters, or data store memory
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.