File Exchange

image thumbnail


version (10.7 KB) by

Saves multiple MATLAB figure windows to powerpoint giving the user "subplot" style control over thei



View License

Saves multiple MATLAB figure windows to powerpoint giving the user "subplot" style control over their positions in the final slide.
Given multiple figures you can use commands like:

subplotPPT(m,n,k,...) to print a copy of the figure to a powerpoint slide. The first three arguements behave like those of subplot: m rows of images, n columns amd k gives you the index of the image to paste to (if k has two element per image then the function will merge the image across the locations). Other inputs:

Vector of handles to figures to paste into the slide

Filename of powerpoint file to use

slide number to print to

Region of the slide to print to

image file format to print to (e.g jpg, png, bmp ...)

gaps between adjacent images

units for specifying measures in.

The zip file contains subplotPPT and test_PPTScript which runs through some examples of how to call the function


The code:

h(1) = figure;
h(2) = figure;
h(3) = figure;
h(4) = figure;
h(5) = figure;

[1 4; 2 3; 5 5; 6 9; 7 8],...
'region',[200 100 500 340],...

Generates the screenshot

Comments and Ratings (8)

David Botto

I tried running Test_PPTScript using MatLab R2015b. I am getting the error message
"undefined function 'Add' for input arguments of type 'Interface.Microsoft_PowerPoint_14.0_Object_Library.Slides',
Error in subplotPPT (line 191)"
Any ideas of what I should do? Thanks,

I'm getting the following error message:

Invoke Error, Dispatch Exception:
Source: Microsoft PowerPoint 2010
Description: CustomLayouts.Item : Integer out of range. 7 is not in Index's valid range of 1 to 1.
Help File:
Help Context ID: 0

Can you help me?


Walid (view profile)

Does it not work with 64 bit ?


Glenn (view profile)

Very quick and useful. Now if I can only get my colleagues to adopt this as well.

How do I get the slide number to continue in the for loop.
For instance, I have 100 figures to put into my .ppt.
I have it set up for 2 figures on one slide starting on slide 8 of my .ppt template. How do I get figures 3 and 4 to be put on slide 9?

Stan Young

Tried on version 6.5 on Windows
After correcting the mkdir (for windows) The test script hung up around line 152 in subplotPPT when it was testing the existence of FileData.FileName. FileData was declared [] earlier and never initialized to anything else. Where am I going wrong?

Thierry Dalon

Good idea and implementation.

Carlos Adrian Vargas Aguilera

It works fine Mark! Is there any way to get the output in an image file (PNG for example) rather than in PPT?

Regards, Carlos


Updated license


Included Trademark Information


Added in copyright information


Now contains a file "subplotPPT_2007" for use with Office 2007. Thanks to Mykel Kochenderfer for pointing this out to me.

MATLAB Release
MATLAB 7.6 (R2008a)

Inspired by: saveppt

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video