In the MATLAB® language, variables can change their properties dynamically at run time so you can use the same variable to hold a value of any class, size, or complexity. For example, the following code works in MATLAB:
function x = foo(c) %#codegen if(c>0) x = 0; else x = [1 2 3]; end disp(x); end
However, statically-typed languages like C must be able to determine variable properties at compile time. Therefore, for C/C++ code generation, you must explicitly define the class, size, and complexity of variables in MATLAB source code before using them. For example, rewrite the above source code with a definition for x:
function x = foo(c) %#codegen x = zeros(1,3); if(c>0) x = 0; else x = [1 2 3]; end disp(x); end
For more information, see Best Practices for Defining Variables for C/C++ Code Generation.