na_0021: Strings in MATLAB functions

Рекомендации ID Sub

  • NA-MAAB — a

  • JMAAB — a

Версии MATLAB

Все

Правило

ID Sub 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 Sub a:

  • Функции MATLAB хранят строки как символьные массивы. В результате хранение строк различных длин в той же переменной не поддерживает динамическое выделение памяти, которое препятствует тому, чтобы строки хранились.

    Рассмотрите использование перечислимых типов, когда строка будет использоваться в блоке Switch Case

В последний раз измененный

R2020a

Введенный в R2020a