主要内容

hasChangedTo

检测数据到指定值的变化

描述

例子

tf = hasChangedTo (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

[hasChangedTo (M, matrixValue))

状态垃圾图表在转换中使用已频率的运算符。

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

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

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

状态垃圾图表在转换中使用已频率的运算符。

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

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

状态垃圾图表在转换中使用已频率的运算符。

如果结构中有任何字段,则转换到状态外结构体自上次时间步长或输入事件以来,是否改变了值和的当前值结构体等于structValue

[散装(STRUCT,STRUCTVALUE)]

状态垃圾图表在转换中使用已频率的运算符。

如果领域的转变出来struct.field值变了吗5从上次时间步长或输入事件开始。

[hasChangedTo struct.field, 5)]

状态垃圾图表在转换中使用已频率的运算符。

提示

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

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

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

    • Matlab中的独立状态流图:当地的只要

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

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

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

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

  • 在Simulink模型中的图表中金宝app,如果您启用图表选项每次唤醒输出才能唤醒输出的参数,使用输出作为参数已经改变运营商总是返回.有关更多信息,请参见每次唤醒输出才能唤醒输出

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

介绍了R2007a