hasChanged

Обнаружьте изменение в данных начиная с последнего временного шага

Синтаксис

Описание

пример

tf = hasChanged(u) возвращает true если значение u в начале текущего времени шаг отличается от значения u в начале предыдущего временного шага. Если несколько входных событий имеют место в том же временном шаге, hasChanged возвращает true когда значение u изменения между входными событиями.

Аргумент u может быть:

Индексы могут быть числами или выражениями, которые оценивают к скалярному значению. Если u матрица, hasChanged возвращает true если любой элемент u изменил значение начиная с последнего временного шага или ввел событие. Если u структура, hasChanged возвращает true если любое поле u изменил значение начиная с последнего временного шага или ввел событие.

Аргумент u не может быть нетривиальное выражение или переменная пользовательского кода.

Примеры

развернуть все

Возвращает true если любое поле структуры struct изменил значение начиная с последнего временного шага или ввел событие.

hasChanged(struct)

Возвращает true если поле структуры struct.field изменил значение начиная с последнего временного шага или ввел событие.

hasChanged(struct.field)

Возвращает true если любой элемент матричного M изменил значение начиная с последнего временного шага или ввел событие.

hasChanged(M)

Возвращает true если элемент в строке 1 и столбце 3 матричного M изменил значение начиная с последнего временного шага или ввел событие.

В графиках, которые используют MATLAB® в качестве языка действия:

hasChanged(M(1,3))

В графиках, которые используют C в качестве языка действия:

hasChanged(M[0][2])

Советы

  • Для графиков Stateflow® в модели Simulink® язык действия определяет осциллограф данных, которые поддерживают обнаружение изменения:

    • MATLAB как язык действия: Input только.

    • C как язык действия: Inputвывод , Local, или Data Store Memory.

  • Автономные диаграммы Stateflow не поддерживают обнаружение изменения на элементе матрицы или поля в структуре.

  • hasChanged оператор возвращает false если график пишет в данные, но не изменяет значение данных.

  • Если вы включаете опции графика Initialize Outputs Every Time Chart Wakes Up, не используйте выход в качестве аргумента hasChanged оператор. С этой включенной опцией, hasChanged оператор всегда возвращает false. Для получения дополнительной информации смотрите, Инициализируют Выходные параметры, которые Будит Каждая Временная диаграмма.

Представленный в R2007a