Получение matlab timer для обновления графического интерфейса matlab GUIDE?
-
06-07-2019 - |
Вопрос
У меня есть объект matlab timer.Он обновляет глобальную переменную FOO один раз в секунду.
У меня есть графический интерфейс matlab GUIDE с парой элементов управления и одним фреймом графика.Рамка графика обновляется некоторыми элементами управления графического интерфейса, а также объектом timer.
По сути, существуют две глобальные переменные FOO и BAR.Таймер обновляет FOO, графический интерфейс управляет панелью обновлений.для обновления FOO или BAR необходимо обновить графический интерфейс.
Как это сделать?
Спасибо Джон
Решение
Вы не можете установить наблюдение за переменной.Для этого нет обратного вызова.Однако и FOO, и BAR обновляются либо:
FOO по TimerFcn
ПАНЕЛЬ обратных вызовов виджета
Вам нужно создать функцию:
updatePlot %обновляет график, чтобы отразить новые значения FOO или BAR
и пусть обе функции, которые обновляют FOO или BAR, вызывают updatePlot в качестве одной из своих последних обязанностей.
Я бы также рекомендовал не использовать глобальные переменные.Есть способы получше сделать это.Я поклонник GETAPPDATA и SETAPPDATA.Смотрите это видео, которое я снял по этому поводу.
http://blogs.mathworks.com/videos/2005/10/03/guide-video-part-two/
Вы также могли бы попробовать вложенные функции.