持久性变量是在MATLAB的局部变量®函数,在调用函数之间的内存保留其值。对于代码生成,如果是空函数必须初始化持久变量。欲了解更多信息,请参阅一贯
。
当在这些情况下MATLAB编程功能:
MATLAB功能块没有直接馈通
MATLAB功能块在包含模型国家控制在块同步
模式
MATLAB功能Stateflow图实现摩尔机语义
在特殊的语义,影响了功能的初始化它的持久性数据。因为初始化必须是独立的输入功能,请遵循以下原则:
该功能仅通过访问常数初始化它的持久性变量。
该函数的控制流并不取决于是否发生初始化。
例如,该函数具有一个持久变量ñ
。
功能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功能块定义功能FCN
,如前所述。输入ü
是一个方波的1和-1的值。
在MATLAB功能块:
持久变量的初始值ñ
取决于输入ü
。
该返回
声明中断功能的正常控制流。
由于允许直接馈通复选框被清除,在一个错误的初始化结果。
如果修改的功能,所以它初始化ñ
独立输入的,那么你可以模拟一个无差错的模型。
该模型包含了MATLAB功能块定义功能FCN
,如前所述。输入ü
是一个方波的1和-1的值。
在MATLAB功能块:
持久变量的初始值ñ
取决于输入ü
。
该返回
声明中断功能的正常控制流。
由于该模型包含在一个国家控制模块同步
模式,初始化导致错误。
如果修改的功能,所以它初始化ñ
独立输入的,那么你可以模拟一个无差错的模型。
该模型包含一个Stateflow框图实现摩尔机语义。图表包含定义的功能的MATLAB函数FCN
,如前所述。输入ü
具有与值1 -1依赖图表的状态。
在MATLAB功能:
持久变量的初始值ñ
取决于输入ü
。
该返回
声明中断功能的正常控制流。
由于图表工具穆尔语义,初始化导致错误。
如果修改的功能,所以它初始化ñ
独立输入的,那么你可以模拟一个无差错的模型。