主要内容

na_0021:MATLAB 函数中的字符串

规范来源

控制算法建模规范 - 使用 MATLAB®、Simulink® 和 Stateflow®

子 ID 建议

  • NA-MAAB - a

  • JMAAB - a

MATLAB 版本

全部

规则

子 ID a

MATLAB 函数中不应使用字符串的赋值语句。

自定义参数

不适用

示例 - 不正确

MATLAB 函数中正在使用字符串的赋值语句。

function y = fcn(u)
%#codegen

str = 'A';

    for i = 1:u
        str = [str 'B'];    
    end

    if strcmp(str, 'ABB')
        y = int16(1);        
    else
        y = int16(0);    
    end
end

理由

子 ID a:

  • MATLAB 函数将字符串存储为字符数组。因此,在同一个变量中存储不同长度的字符串不支持动态内存分配,从而阻止字符串的存储。

    当在 Switch Case 模块中使用字符串时,请考虑使用枚举类型

验证

模型顾问检查:检查 MATLAB Function 模块中字符向量的使用 (Simulink Check)

上次更改

R2020a

版本历史记录

在 R2020a 中推出