На языке MATLAB® переменные могут изменить свои свойства динамически во время выполнения, таким образом, можно использовать ту же переменную, чтобы содержать значение любого класса, размера или сложности. Например, следующий код работает в 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++.