hasChangedTo

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

Синтаксис

tf = hasChangedTo(u,v)

Описание

пример

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 зависит от языка действия графика:

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

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

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

Советы

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

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

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

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