hasChanged

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

Синтаксис

tf = hasChanged(u)

Описание

пример

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

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

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

Осциллограф u зависит от языка действия графика:

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

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

Аргумент 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])

Советы

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

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

  • Оператор hasChanged поддерживается только в графиках Stateflow® в моделях Simulink®.

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