主要内容

hasChangedFrom

检测来自指定值的数据变化

描述

例子

tf = hasChangedFrom (data_name价值返回1 (真正的)如果值data_name是否等于指定的价值在前一个时间步骤的开始处,并且在当前时间步骤的开始处是一个不同的值。否则,操作符返回0 ().

这个论点data_name可以是:

  • 一个标量变量。

  • 矩阵或矩阵的一个元素

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

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

  • 一个结构中的结构或领域。

    • 如果data_name是一个结构,更改检测操作符返回真正的当它检测到任何元素的变化data_name和之前的值data_name等于价值

    • 使用点表示法在结构中索引字段。看到为状态流结构建立索引和赋值

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

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

请注意

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

这个论点价值可以是任何表达式,其解析值可与data_name

  • 如果data_name是标量吗价值必须解析为标量值。

  • 如果data_name是一个矩阵价值必须解析为具有相同维数的矩阵值data_name

    或者,在一个使用C语言作为动作语言的图表中,价值可以解析为标量值。图表使用标量展开进行比较data_name到一个矩阵,该矩阵的元素都等于指定的值价值.看到给矩阵的所有元素赋值

  • 如果data_name是一种结构吗价值必须解析到其字段规范匹配的结构值data_name完全正确。

例子

全部展开

转出状态,如果矩阵的前一个值等于matrixValue任何元素自上次时间步骤或输入事件以来已更改值。

[hasChangedFrom (M, matrixValue))

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

如果矩阵的第1行和第3列中的元素从价值上改变了吗7从上次时间步长或输入事件开始。

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

[hasChangedFrom (M (1,3), 7))

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

在使用C作为动作语言的表格中,使用:

[hasChangedFrom (M [0] [2], 7))

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

如果是结构的前一个值,则转换到状态外结构体等于structValue和任意的字段结构体自上次时间步骤或输入事件以来已更改值。

[hasChangedFrom (struct structValue)]

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

转换出状态,如果字段struct.field从价值上改变了吗5从上次时间步长或输入事件开始。

[hasChangedFrom struct.field, 5)]

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

提示

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

  • 如果图表写入数据对象但不改变数据值,则hasChangedFrom操作符返回

  • 状态流的类型®图表确定了变更检测算子支持的数据范围:金宝app

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

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

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

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

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

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

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

介绍了R2007a