Получение matlab timer для обновления графического интерфейса matlab GUIDE?

StackOverflow https://stackoverflow.com/questions/1007385

Вопрос

У меня есть объект 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/

Вы также могли бы попробовать вложенные функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top