Question

J'ai un objet Matlab Timer. Il met à jour une variable globale FOO une fois par seconde.

J'ai une interface graphique matlab GUIDE, avec quelques contrôles et un seul cadre de tracé. Le cadre de tracé est mis à jour par certains contrôles de l'interface graphique et par l'objet timer.

En gros, il existe deux variables globales FOO et BAR. La minuterie met à jour FOO, l’interface graphique met à jour BAR. Les mises à jour de FOO ou de BAR doivent mettre à jour l'interface graphique.

Comment faire cela?

Merci John

Était-ce utile?

La solution

Vous ne pouvez PAS mettre une montre sur une variable. Il n'y a pas de rappel pour cela. Cependant, FOO et BAR sont mis à jour soit par:

FOO par timerFcn

Rappels BAR par widget

Vous devez créer une fonction:

updatePlot% met à jour le tracé pour refléter les nouvelles valeurs de FOO ou BAR

et que les deux fonctions qui mettent à jour FOO ou BAR appellent updatePlot comme l'une de leurs dernières tâches.

Je recommande également de ne pas utiliser de variables globales. Il y a de meilleures façons de le faire. Je suis un fan de GETAPPDATA et SETAPPDATA. Voir cette vidéo que j'ai faite à ce sujet.

http: //blogs.mathworks. com / videos / 2005/10/03 / guide-video-part-two /

Vous pouvez également essayer des fonctions imbriquées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top