Partendo dalle istruzioni riportate in
https://www.mathworks.com/help/matlab/ref/imwrite.html#btv452g-1 potresti scrivere una funzione per la creazione delle gif.
Un esempio potrebbe essere:
function create_gif(filename,fig,delay_time,write_mode)
%
% create_gif(filename,fig,delay_time,write_mode)
% Input:
% filename: name of the gif file (incliding the ".gif" extension)
% fig: handle of the Figure from which to crete the gif (es. gcf for the current Figure)
% delay: time delay (in seconds) between two frames of the gif
% write_mode: 0 at the first call to initialize the gif
% 1 for all the other call
%
drawnow
frame = getframe(fig);
im = frame2im(frame);
[A,map] = rgb2ind(im,256);
if(write_mode == 0)
imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',delay_time);
else
imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',delay_time);
end
Puoi chiamare la funzione (con write_mode=0) una prima volta prima del loop che genera il grafico e poi nel loop (con "write_mode=1) nel loop, dopo le istruzioni che modificano il grafico.
I parametri di input sono descritti nel codice..