Une autre façon de le faire si vous voulez juste de le visualiser sans enregistrer l'animation, est d'utiliser refreshdata
au lieu de plot
pour les parcelles suivantes. Vous devrez toujours appeler le drawnow
pour qu'il soit mis à jour à l'écran.
soit utiliser
set(fig_handle,'XData',new_xdata_array)
set(fig_handle,'YData',new_ydata_array)
refreshdata
drawnow
ou utiliser
set(fig_handle,'XDataSource',xdata_array)
set(fig_handle,'YDataSource',ydata_array)
%call this whenever xdata_array and ydata_array are assigned new values to see it updated in the plot
refreshdata
drawnow
pour votre exemple, cela pourrait ressembler:
a=[1:100];
figure;
h=plot(1,a(1));
for i=2:100
set(h,'XData',[1:i])
set(h,'YData',a(1:i))
refreshdata
drawnow
end
Il est pas si utile pour des tracés linéaires simples (pour lesquels plot(); drawnow;
est plus simple et plus rapide), mais lorsque vous avez besoin de créer des figures plus complexes impliquant plusieurs types de graphiques, cela peut être utile.
Alors que drawnow est la déclaration réponse, je pense que l'on peut également ajouter une pause (EPS) dans le code à la place de drawnow. Quand matlab fait la pause, même si c'est seulement pour cette nano-fraction d'une tranche de temps, il fait aussi un rafraîchissement sur la figure. –