MATLAB: Array as a #define instead of scalar

defineEmbedded Codersimulinkstorage class

Hi all
I want to use a small array as a Storage Class 'define':
However, when I use this in my model and try to generate code, it gives the following error:
So it seems I cannot use an array as a #define in code. Is this to be expected? Is there a work-around?
With kind regards,
Jonas

Best Answer

Hi Jonas,
The error thrown is an expected behaviour.
To work around this issue, you can
  1. Use the "ImportedDefine" Storage class and write a header file to define the array. You will be able to specify the header file from the Model Explorer under Code Generation options > Custom attributes. In this way, Simulink will depend on the header file to provide the definition for "CS_READ_FW_VERSION" and not generate macro directives. Inside the header file you define a constant array such as "const double CS_READ_FW_VERSION[] = {82, 86};"
  2. Use the "Const" Storage class instead of "Define"
Hope this helps!