How to specific fig handle in function savefig

8 views (last 30 days)
I first determine figHandles = findobj('Type', 'figure');
from open Matlab figures I saved earlier and get result
>> figHandles
figHandles = 4×1 Figure array:
Figure (3)
Figure (2)
Figure (1)
Figure (4)
I then tried multiple ways to specify handle in savefig, but get errorL
>> savefig('C:\Users\Owner\Documents\Research\TreasuryFunding\FiscalTheory\NetBondSalesNov12.fig', 'figHandles(1)','pdf')
Error using savefig (line 43)
H must be an array of handles to valid figures.
Then I tried but got same error.
savefig('C:\Users\Owner\Documents\Research\TreasuryFunding\FiscalTheory\NetBpndSalesNov12.fig', figHandles(1),'pdf')
Thank you
  1 Comment
Steven Lord
Steven Lord on 10 Dec 2021
Out of curiosity, was there something (a documentation page, a website, a similar function's behavior, etc.) that led you to believe that savefig would accept 'pdf' as the last input? If there is something and it's under MathWorks control I'd like to correct it to avoid misleading or confusing users in the future.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 9 Dec 2021
Try exportgraphics() instead.
  4 Comments
Nancy Hammond
Nancy Hammond on 10 Dec 2021
Thanks, Image Analyst. I sent in my proposal with shi*y graphics. The images I inserted into overleaf were horrible, blurred, illegible.
I'll try this and I have used g.WindowState = 'maximized'
I've tried exportgraphics, savefig. I have some new Matlab
plot recommendations.
Also going to eliminate legend and label curves with one or 2 letter text as I have seen colleagues do. And reached out to them to see what they do.
Hopefully I can edit the submission
Thanks for your help.

Sign in to comment.

More Answers (1)

Voss
Voss on 9 Dec 2021
The two- and three-input-argument options for calling savefig expect the figure to be the first input argument, so it would be:
savefig(figHandles(1),'C:\Users\Owner\Documents\Research\TreasuryFunding\FiscalTheory\NetBpndSalesNov12.fig')
Note that I removed the third argument 'pdf' because this is not a recognized option, according to the documentation. savefig will save the figure as a .fig file. If you want to save a figure as a .pdf file, you can use print:
print(figHandles(1),'C:\Users\Owner\Documents\Research\TreasuryFunding\FiscalTheory\NetBpndSalesNov12.pdf','pdf')
  3 Comments
Voss
Voss on 9 Dec 2021
Oops. That last 'pdf' argument should've been '-dpdf'. That is:
print(figHandles(1),'C:\Users\Owner\Documents\Research\TreasuryFunding\FiscalTheory\NetBpndSalesNov12.pdf','-dpdf')

Sign in to comment.

Categories

Find more on Printing and Saving in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!