hasChangedTo

Обнаружьте изменение в данных к заданному значению

Синтаксис

Описание

пример

tf = hasChangedTo(u,v) возвращает true если оба из этих условий верны:

  • Значение u в начале предыдущего временного шага не было равно v.

  • Значение u в начале текущего времени шаг равен v.

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

Первый аргумент u может быть:

Индексы могут быть числами или выражениями, которые оценивают к скалярному значению.

Второй аргумент v может быть любое выражение, которое решает к значению, которое сопоставимо с u:

  • Если u скаляр, затем v должен решить к скалярному значению.

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

    В качестве альтернативы в графике, который использует C в качестве языка действия, v может решить к скалярному значению. График использует скалярное расширение, чтобы сравнить u к матрице, элементы которой все равны значению, заданному v. Смотрите значения присвоения ко всем элементам матрицы.

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

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

Примеры

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

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

hasChangedTo(struct,structValue)

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

hasChangedTo(struct.field,5)

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

hasChangedTo(M,matrixValue)

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

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

hasChangedTo(M(1,3),7)

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

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

Советы

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

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

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

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

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

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

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