在初始化持久变量MATLAB功能

持久性变量是在MATLAB的局部变量®函数,在调用函数之间的内存保留其值。对于代码生成,如果是空函数必须初始化持久变量。欲了解更多信息,请参阅一贯

当在这些情况下MATLAB编程功能:

在特殊的语义,影响了功能的初始化它的持久性数据。因为初始化必须是独立的输入功能,请遵循以下原则:

  • 该功能仅通过访问常数初始化它的持久性变量。

  • 该函数的控制流并不取决于是否发生初始化。

例如,该函数具有一个持久变量ñ

功能Y = FCN(u)的一贯ñ如果的isEmpty(n)的N = U;Y = 1;返回结束Y = N;N = N + U;结束
这在错误类型初始化的结果,因为初始值ñ取决于输入ü返回声明中断功能的正常控制流。

为了纠正该错误,将其设置为一恒定值初始化持久变量并取出返回声明。例如,此函数初始化持久变量而不产生错误。

功能Y = FCN(u)的一贯ñ如果的isEmpty(n)的N = 1;结束Y = N;N = N + U;结束

MATLAB功能块,不直接穿心

该模型包含了MATLAB功能块定义功能FCN,如前所述。输入ü是一个方波的1和-1的值。

在MATLAB功能块:

  • 持久变量的初始值ñ取决于输入ü

  • 返回声明中断功能的正常控制流。

由于允许直接馈通复选框被清除,在一个错误的初始化结果。

如果修改的功能,所以它初始化ñ独立输入的,那么你可以模拟一个无差错的模型。

国家控制块同步模式

该模型包含了MATLAB功能块定义功能FCN,如前所述。输入ü是一个方波的1和-1的值。

在MATLAB功能块:

  • 持久变量的初始值ñ取决于输入ü

  • 返回声明中断功能的正常控制流。

由于该模型包含在一个国家控制模块同步模式,初始化导致错误。

如果修改的功能,所以它初始化ñ独立输入的,那么你可以模拟一个无差错的模型。

Stateflow框图实施穆尔语义学

该模型包含一个Stateflow框图实现摩尔机语义。图表包含定义的功能的MATLAB函数FCN,如前所述。输入ü具有与值1 -1依赖图表的状态。

在MATLAB功能:

  • 持久变量的初始值ñ取决于输入ü

  • 返回声明中断功能的正常控制流。

由于图表工具穆尔语义,初始化导致错误。

如果修改的功能,所以它初始化ñ独立输入的,那么你可以模拟一个无差错的模型。

也可以看看

|||

相关话题