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