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