Main Content

字符串的代码生成

代码生成支持 1×1 MATLAB® 字符串数组。代码生成不支持包含多个元素的字符串数组。

1×1 字符串数组(称为字符串标量)包含一段文本,表示为 1×n 字符向量。字符串标量的一个示例是 "Hello, world"。有关字符串的详细信息,请参阅字符串数组和字符数组中的文本

限制

对于字符串标量,代码生成不支持:

  • 全局变量

  • 用花括号 {} 进行索引

  • 缺失值

  • 使用 codegen (MATLAB Coder) 命令、fiaccel 命令或 MATLAB Coder™ 生成代码时,通过对 assert 语句使用预条件以编程方式定义输入类型

  • 使用 codegen (MATLAB Coder) 命令、fiaccel 命令或 MATLAB Coder 生成代码时与 coder.varsize 结合使用

  • 它们用作 Simulink® 信号、参数或数据存储内存

对于代码生成,适用于类的限制也适用于字符串。请参阅用于代码生成的 MATLAB 类定义

生成的代码和 MATLAB 代码之间的差异

  • 如果将包含多个一元运算符的字符串转换为 double,则在 MATLAB 和生成的代码之间可能产生不同结果。以如下函数为例:

    function out = foo(op)
    out = double(op + 1);
    end

    对于输入值 "--",该函数将字符串 "--1" 转换为 double。在 MATLAB 中,结果为 NaN。在生成的代码中,结果为 1

  • 对具有错位逗号(逗号不用作千位分隔符)的字符串进行双精度值转换可能会产生与 MATLAB 不同的结果。

相关主题