Matlab Simulink不可调变量作为C/C+中的宏/常量+;代码

Matlab Simulink不可调变量作为C/C+中的宏/常量+;代码,matlab,code-generation,simulink,Matlab,Code Generation,Simulink,我在Simulink中定义了一个常量参数,用于在Matlab功能块中创建固定大小的缓冲区。此参数是工作区中的变量 为了生成等效的C/C++代码,Simulink需要将变量设置为“内联”,以便将其标识为不可调。结果是文本值(比如200)在代码的多个位置进行了harcoded 我希望在生成的C代码中将其定义为宏,这样就可以从单个点更改缓冲区大小,而无需从Simulink模型重新生成代码。 在Configuration Parameters->code generation->Symbols中,您可以

我在Simulink中定义了一个常量参数,用于在Matlab功能块中创建固定大小的缓冲区。此参数是工作区中的变量

为了生成等效的C/C++代码,Simulink需要将变量设置为“内联”,以便将其标识为不可调。结果是文本值(比如200)在代码的多个位置进行了harcoded

我希望在生成的C代码中将其定义为宏,这样就可以从单个点更改缓冲区大小,而无需从Simulink模型重新生成代码。 在
Configuration Parameters->code generation->Symbols
中,您可以找到选项“Generate scalar inlined Parameters as:”set to value“Macros”。然而,这并没有帮助


有人知道如何做到这一点吗?

也许一个带有硬编码数字的函数可以帮助您


只要做一个输出为200的函数,并在需要时随时调用它。

谢谢你的回答,但我没有遗漏解释,这不是我要找的。为了让问题更清楚,我重写了这个问题:我们有一个MATLAB文件,其中定义了所有可调和不可调变量。但我的目标是生成一个C代码,其中可以从一个点修改可调变量和不可调变量。对于后者,我喜欢使用C宏,而不是分散在代码中的harcoded值。不管怎样,谢谢。问题是Matlab没有等价的
#define
。这可能是解决Matlab缺陷的唯一方法。也许我没有弄对,但我相信,通过一个外部函数,它只返回写在里面的变量,你可以解决这个问题。您只需在每次需要变量时调用该函数。例如:
temp_var=get_var_value()
您甚至可以使用一些
if
函数来更改变量的值,方法可能是使用
varargin
varargout
。或者,还有另一种可能的方法,那就是使用全局变量。您在开始时定义它,并在所有函数中将其作为固定变量使用。我只知道这些。我希望我帮助了你。如果没有,祝您的解决方案好运:)