Tracé en temps réel dans MATLAB
Je suis très nouveau à MATLAB et j'essayais d'afficher en temps réel de la parcelle de certains calculs. J'ai un N
de la taille du vecteur, et je travaille avec m
valeurs à un moment (disons m = N/4
), donc je veux tracer la première m
valeurs et puis dès que le deuxième m
valeurs sont calculées les ont remplacer la première parcelle.
Mon approche était comme suit:
for i=1:N,
...
//compute m
...
plot(m);
end;
mais il ne parvient pas à mettre à jour le complot dans chaque boucle et attend pour toutes les boucles de finir de tracer les données. Ma question est: dois-je utiliser une autre fonction au lieu de plot
ou pourrais-je ajouter un peu de retard à chaque tour de boucle?
Je pense qu'il doit y avoir un moyen, je ne suis pas au courant pour la mise à jour de l'intrigue au lieu de re-tracer à chaque fois.
source d'informationauteur kirbuchi
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter un appel à
DRAWNOW
à la force de l'intrigue de mise à jour. Voir la page de référence. Notez queDRAWNOW
causes les graphismes des événements de la file d'attente pour être vidées, ce qui peut causer des rappels etc. pour être exécuté.Comme Edric mentionnévous aurez certainement souhaitez inclure une
drawnow
commande après l'appel àcomplot
pour forcer une mise à jour de la carte graphique. Cependant, il est beaucoup plus efficace et plus facile méthode pour animer des parcelles qui n'implique pas de recréer l'ensemble de la parcelle à chaque fois. Vous pouvez simplement initialiser votre parcelle de terrain, la capture d'un poignée à la parcelle objet, puis modifiez les propriétés de cet objet dans votre boucle à l'aide de laset
de commande. Voici un exemple:En outre, avant ta boucle et après l'appel à
plot
vous pouvez définir un certain nombre de les axes de propriétéscomme le limites des axesetc., si vous voulez les axes de rester fixe et de ne pas changer leur apparence à chaque nouveau vecteurm
qui est tracée.