How can I create animated GIF images in MATLAB ?

4.245 views (last 30 days)
I would like to know if there is MATLAB functionality to create an animated GIF in MATLAB.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 28 Mar 2022
Edited: MathWorks Support Team on 28 Mar 2022
In MATLAB 2022a, export to GIF format is supported by the exportgraphics function using the ‘Append’ option.  For example:
x = 0:0.01:1;
p = plot(nan,nan);
p.XData = x;
for n = 1:0.5:5
      p.YData = x.^n;
For releases prior to R2022a, follow the example "Write Animated GIF" on the imwrite reference page.
Walter Roberson
Walter Roberson on 8 Sep 2021
prefix = 'abc_20190304'
dinfo = dir( [prefix '*.png']);
filenames = {};
for K = 1 : length(filenames)
work with file name in filenames{K}

Sign in to comment.

More Answers (3)

Chad Greene
Chad Greene on 4 Jun 2017
Or, for a much simpler option, use the gif function on File Exchange.

Shashank Rai
Shashank Rai on 1 May 2017
Edited: Chad Greene on 17 Oct 2018
x = 0:0.01:1;
filename = 'testnew51.gif';
for n = 1:0.5:5
y = x.^n;
frame = getframe(1);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if n == 1;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
Fei Jia
Fei Jia on 11 Nov 2021
Thank you! This helped me in creating a gif for my student.

Sign in to comment.

Alec on 19 Dec 2013
So it appears that `imwrite` now supports writing animated grayscale GIFs "When writing multiframe GIF images, X should be an 4-dimensional M-by-N-by-1-by-P array, where P is the number of frames to write."
But if I try to pass it an M-by-N-by-3-by-P it seems to treat each RGB color channel as a separate grayscale frame. Is there now way to write an animated color GIF without a for loop over the frames?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by