В MATLAB® language, переменные могут динамически изменять свои свойства во время исполнения, поэтому можно использовать ту же переменную для хранения значения любого класса, размера или сложности. Для примера в MATLAB работает следующий код:
function x = foo(c) %#codegen if(c>0) x = 0; else x = [1 2 3]; end disp(x); end
Однако статически типизированные языки, такие как C, должны быть способны определять переменные свойства во время компиляции. Поэтому для генерации кода C/C + + необходимо явным образом определить класс, размер и сложность переменных в исходном коде MATLAB перед их использованием. Например, перепишите вышеуказанный исходный код с определением для x:
function x = foo(c) %#codegen x = zeros(1,3); if(c>0) x = 0; else x = [1 2 3]; end disp(x); end
Для получения дополнительной информации смотрите Лучшие практики для определения переменных для генерации кода C/C + +.