Обнаружьте изменение в данных из заданного значения
tf = hasChangedFrom( возвращает u,v)true если оба из этих условий верны:
Значение u в начале предыдущего временного шага было равно v.
Значение u в начале текущего времени шаг не равен v.
Если несколько входных событий имеют место в том же временном шаге, hasChangedFrom возвращает true когда значение u изменения от значения v между входными событиями.
Первый аргумент u может быть:
Скалярная переменная.
Матрица A или элемент матрицы. Смотрите Поддерживаемые Операции для Векторов и Матриц.
Структура или поле в структуре. Смотрите индекс и Значения Присвоения к Структурам Stateflow.
Любая допустимая комбинация полей структуры или матричных индексов.
Индексы могут быть числами или выражениями, которые оценивают к скалярному значению.
Второй аргумент v может быть любое выражение, которое решает к значению, которое сопоставимо с u:
Если u скаляр, затем v должен решить к скалярному значению.
Если u матрица, затем v должен решить к матричному значению с теми же размерностями как u. hasChangedFrom оператор возвращает true если предыдущее значение u было равно v и любой элемент u изменил значение начиная с последнего временного шага или ввел событие.
В качестве альтернативы в графике, который использует C в качестве языка действия, v может решить к скалярному значению. График использует скалярное расширение, чтобы сравнить u к матрице, элементы которой все равны значению, заданному v. Смотрите значения присвоения ко всем элементам матрицы.
Если u структура, затем v должен решить к значению структуры, полевая спецификация которого совпадает с u точно. hasChangedFrom оператор возвращает true если предыдущее значение u было равно v и любое поле u изменил значение начиная с последнего временного шага или ввел событие.
Аргумент u не может быть нетривиальное выражение или переменная пользовательского кода.
Для графиков Stateflow® в модели Simulink® язык действия определяет осциллограф данных, которые поддерживают обнаружение изменения:
MATLAB как язык действия: Input только.
C как язык действия: Inputвывод , Local, или Data Store Memory.
Автономные диаграммы Stateflow не поддерживают обнаружение изменения на элементе матрицы или поля в структуре.
hasChangedFrom оператор возвращает false если график пишет в данные, но не изменяет значение данных.
Если вы включаете опции графика Initialize Outputs Every Time Chart Wakes Up, не используйте выход в качестве аргумента hasChangedFrom оператор. С этой включенной опцией, hasChangedFrom оператор всегда возвращает false. Для получения дополнительной информации смотрите, Инициализируют Выходные параметры, которые Будит Каждая Временная диаграмма.