主要内容

焕然一新

检测自上次时间步以来数据的变化

描述

例子

tf =焕然一新(data_name返回1 (真正的),如果值data_name开始时的当前时间步长值不同data_name在上一个时间步骤的开始处。否则,操作符返回0 ().

这个论点data_name可以是:

  • 一个标量变量。

  • 矩阵或矩阵的元素

    • 如果data_name是一个矩阵,算符返回真正的当它检测到任何元素的变化data_name

    • 使用计算为常整数的数字或表达式对矩阵的元素进行索引。看到金宝app支持向量和矩阵的运算

  • 一种结构或结构中的场。

    • 如果data_name是一个结构,变更检测操作符返回真正的当它检测到任何领域的变化data_name

    • 使用点表示法在结构中索引字段。看到索引和分配值的状态流结构

  • 结构字段或矩阵元素的任何有效组合。

这个论点data_name不能是非普通表达式或自定义代码变量。

请注意

MATLAB中的独立图®不支持对矩阵的金宝app元素或结构中的字段进行更改检测。

例子

全部展开

转换出状态,如果任何元素的矩阵自上次步骤或输入事件以来已更改值。

(改变了(M))

在转换中使用hasChanged操作符的状态流程图。

如果在矩阵的第1行和第3列中的元素转移出状态自上次步骤或输入事件以来已更改值。

在使用MATLAB作为动作语言的图表中,使用:

[焕然一新(M(1、3)))

在转换中使用hasChanged操作符的状态流程图。

在使用C语言作为操作语言的图表中,使用:

[焕然一新(M [0] [2]))

在转换中使用hasChanged操作符的状态流程图。

如果结构中有任何字段,则过渡到状态外结构体自上次步骤或输入事件以来已更改值。

[焕然一新(结构)

在转换中使用hasChanged操作符的状态流程图。

如果字段转换出状态struct.field自上次步骤或输入事件以来已更改值。

[焕然一新(struct.field))

在转换中使用hasChanged操作符的状态流程图。

提示

  • 如果在同一时间步长中发生多个输入事件,则焕然一新操作符可以检测输入事件之间数据值的变化。

  • 如果图表写入数据对象但没有更改数据值,则焕然一新操作符返回

  • Stateflow的类型®图确定了变更检测操作符支持的数据范围:金宝app

    • MATLAB中的独立状态流图:当地的只有

    • 在仿真金宝app软件®使用MATLAB作为行动语言的模型、图表:输入只有

    • 在Si金宝appmulink模型中,使用C作为动作语言的图表:输入输出当地的,或数据存储内存

  • 在MATLAB中的独立图表中,更改检测操作符可以检测在调用中指定的数据的更改一步函数,因为这些更改发生在当前时间步长开始之前。例如,如果x等于0,表达式焕然一新(x)返回真正的当你执行图表时ch使用命令:

    步骤(ch,“x”1);
    相反,更改检测操作符不能检测由状态中的分配或同一时间步中的转换操作引起的数据更改。相反,该操作符在下一个时间步骤开始时检测值的变化。

  • 在Simulink模型中的图表中金宝app,如果启用图表选项每次时间图唤醒时初始化输出的参数,使用输出作为参数焕然一新运营商总是返回.有关更多信息,请参见在每次时间图唤醒时初始化输出

  • 当使用的图表中启用行为主数组布局时焕然一新,则代码生成将产生错误。在图表中生成代码之前焕然一新,启用列主数组布局。看到在生成代码中为矩阵选择数组布局

介绍了R2007a