Matlab中的simulink\If else模块

最近用到了simulink中的If Else模块,发现了一个问题。为了说明问题,简单搭了个模型(仅为了说明,无实际用途),见下图所示:

Matlab中的simulink\If else模块_第1张图片

u1小于0时,会触发第一个动作,输出状态变量state1到工作区中;

否则,会触发第二个动作,输出state2.

问题:当第一个动作触发时(第二个动作没有触发),state2有值吗?或者反之,第二个动作触发时,state1会发生怎样的变化?

答案:经过仿真实验发现,对于第一个问题,state2仍然被初始化了,被赋了0值。第二个问题,也是同样的结果。

这就意味着,尽管动作没有触发,但里面的变量还是被默认初始化了。编程的时候得注意这一点。


你可能感兴趣的:(matlab)