MATLAB: Does the SAVEAS command not append the correct file extension when the file name contains a period

extensionMATLABperiodsaveas

I want to save a figure to a file where the file name contains a period. I specify the file format, but the corresponding extension is not appended to the file name.

Best Answer

The command
SAVEAS(H,'FILENAME','FORMAT')
saves the figure specified by handle H to file name FILENAME. When FILENAME does not contain an extension (it has no periods in it), an extension corresponding to FORMAT is appended to the file name.
If FILENAME contains periods in it, MATLAB interprets this as an extension. The FORMAT option overrides whatever extension is specified by FILENAME, but the correct extension is not appended to FILENAME. If desired, the correct file extension must be explicitly defined in the filename.
For example, see the code below:
plot(1:10)
% the following creates a TIF file test1.tif
saveas(gcf, 'test1', 'tif')
% the following creates a TIF file test2.123
saveas(gcf, 'test2.123', 'tif')
% the follwoing creates a TIF file test3.123.tif
saveas(gcf, 'test3.123.tif', 'tif')